home *** CD-ROM | disk | FTP | other *** search
Unknown | 1999-10-20 | 11.9 KB |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was not able to be converted.
This format is not currently supported by dexvert.
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| file
| data
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 00 00 00 00 00 00 00 | 5f be 01 2f 2f 3d 3d 3d |........|_..//===|
|00000010| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000020| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000030| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000040| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000050| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 0d 0a 2f 2f 20 55 |========|==..// U|
|00000060| 57 69 6e 64 6f 77 4c 69 | 73 74 20 2d 20 61 20 67 |WindowLi|st - a g|
|00000070| 65 6e 65 72 69 63 20 6c | 69 6e 6b 65 64 20 6c 69 |eneric l|inked li|
|00000080| 73 74 20 63 6c 61 73 73 | 0d 0a 2f 2f 3d 3d 3d 3d |st class|..//====|
|00000090| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 0d 0a 63 6c 61 73 73 |========|=..class|
|000000e0| 20 55 57 69 6e 64 6f 77 | 4c 69 73 74 20 65 78 74 | UWindow|List ext|
|000000f0| 65 6e 64 73 20 55 57 69 | 6e 64 6f 77 42 61 73 65 |ends UWi|ndowBase|
|00000100| 3b 0d 0a 0d 0a 76 61 72 | 20 55 57 69 6e 64 6f 77 |;....var| UWindow|
|00000110| 4c 69 73 74 09 4e 65 78 | 74 3b 0d 0a 76 61 72 20 |List.Nex|t;..var |
|00000120| 55 57 69 6e 64 6f 77 4c | 69 73 74 09 4c 61 73 74 |UWindowL|ist.Last|
|00000130| 3b 09 09 2f 2f 20 4f 6e | 6c 79 20 76 61 6c 69 64 |;..// On|ly valid|
|00000140| 20 66 6f 72 20 73 65 6e | 74 69 6e 65 6c 0d 0a 76 | for sen|tinel..v|
|00000150| 61 72 20 55 57 69 6e 64 | 6f 77 4c 69 73 74 09 50 |ar UWind|owList.P|
|00000160| 72 65 76 3b 0d 0a 76 61 | 72 20 55 57 69 6e 64 6f |rev;..va|r UWindo|
|00000170| 77 4c 69 73 74 09 53 65 | 6e 74 69 6e 65 6c 3b 0d |wList.Se|ntinel;.|
|00000180| 0a 76 61 72 20 69 6e 74 | 09 09 09 49 6e 74 65 72 |.var int|...Inter|
|00000190| 6e 61 6c 43 6f 75 6e 74 | 3b 0d 0a 76 61 72 20 62 |nalCount|;..var b|
|000001a0| 6f 6f 6c 09 09 62 49 74 | 65 6d 4f 72 64 65 72 43 |ool..bIt|emOrderC|
|000001b0| 68 61 6e 67 65 64 3b 0d | 0a 0d 0a 76 61 72 20 62 |hanged;.|...var b|
|000001c0| 6f 6f 6c 09 09 62 53 75 | 73 70 65 6e 64 61 62 6c |ool..bSu|spendabl|
|000001d0| 65 53 6f 72 74 3b 0d 0a | 0d 0a 76 61 72 20 69 6e |eSort;..|..var in|
|000001e0| 74 09 09 09 43 6f 6d 70 | 61 72 65 43 6f 75 6e 74 |t...Comp|areCount|
|000001f0| 3b 0d 0a 76 61 72 20 62 | 6f 6f 6c 09 09 62 53 6f |;..var b|ool..bSo|
|00000200| 72 74 53 75 73 70 65 6e | 64 65 64 3b 0d 0a 76 61 |rtSuspen|ded;..va|
|00000210| 72 20 55 57 69 6e 64 6f | 77 4c 69 73 74 20 43 75 |r UWindo|wList Cu|
|00000220| 72 72 65 6e 74 53 6f 72 | 74 49 74 65 6d 3b 0d 0a |rrentSor|tItem;..|
|00000230| 0d 0a 2f 2f 20 42 69 6e | 61 72 79 20 74 72 65 65 |..// Bin|ary tree|
|00000240| 20 76 61 72 69 61 62 6c | 65 73 20 66 6f 72 20 73 | variabl|es for s|
|00000250| 65 6e 74 69 6e 65 6c 0d | 0a 76 61 72 20 62 6f 6f |entinel.|.var boo|
|00000260| 6c 09 09 62 54 72 65 65 | 53 6f 72 74 3b 0d 0a 0d |l..bTree|Sort;...|
|00000270| 0a 2f 2f 20 42 69 6e 61 | 72 79 20 74 72 65 65 20 |.// Bina|ry tree |
|00000280| 76 61 72 69 61 62 6c 65 | 73 20 66 6f 72 20 65 61 |variable|s for ea|
|00000290| 63 68 20 65 6c 65 6d 65 | 6e 74 0d 0a 76 61 72 20 |ch eleme|nt..var |
|000002a0| 55 57 69 6e 64 6f 77 4c | 69 73 74 20 42 72 61 6e |UWindowL|ist Bran|
|000002b0| 63 68 4c 65 66 74 3b 0d | 0a 76 61 72 20 55 57 69 |chLeft;.|.var UWi|
|000002c0| 6e 64 6f 77 4c 69 73 74 | 20 42 72 61 6e 63 68 52 |ndowList| BranchR|
|000002d0| 69 67 68 74 3b 0d 0a 76 | 61 72 20 55 57 69 6e 64 |ight;..v|ar UWind|
|000002e0| 6f 77 4c 69 73 74 20 50 | 61 72 65 6e 74 4e 6f 64 |owList P|arentNod|
|000002f0| 65 3b 0d 0a 0d 0a 2f 2a | 20 54 72 65 65 20 53 6f |e;..../*| Tree So|
|00000300| 72 74 69 6e 67 3a 0d 0a | 0d 0a 2d 20 49 74 65 6d |rting:..|..- Item|
|00000310| 73 20 6d 75 73 74 20 62 | 65 20 61 64 64 65 64 20 |s must b|e added |
|00000320| 77 69 74 68 20 41 70 70 | 65 6e 64 49 74 65 6d 28 |with App|endItem(|
|00000330| 29 0d 0a 2d 20 49 74 65 | 6d 73 20 77 68 69 63 68 |)..- Ite|ms which|
|00000340| 20 72 65 71 75 69 72 65 | 20 72 65 73 6f 72 74 69 | require| resorti|
|00000350| 6e 67 20 6d 75 73 74 20 | 63 61 6c 6c 20 4d 6f 76 |ng must |call Mov|
|00000360| 65 49 74 65 6d 53 6f 72 | 74 65 64 28 29 0d 0a 2d |eItemSor|ted()..-|
|00000370| 20 53 68 6f 75 6c 64 20 | 63 61 6c 6c 20 54 69 63 | Should |call Tic|
|00000380| 6b 20 61 6e 64 20 73 65 | 74 20 62 53 75 73 70 65 |k and se|t bSuspe|
|00000390| 6e 64 61 62 6c 65 53 6f | 72 74 20 2d 20 66 6f 72 |ndableSo|rt - for|
|000003a0| 20 6c 61 72 67 65 20 73 | 6f 72 74 73 21 0d 0a 0d | large s|orts!...|
|000003b0| 0a 2a 2f 0d 0a 0d 0a 2f | 2a 2a 2a 2a 2a 2a 2a 2a |.*/..../|********|
|000003c0| 2a 2a 20 54 68 65 73 65 | 20 74 68 69 6e 67 73 20 |** These| things |
|000003d0| 63 61 6e 20 62 65 20 63 | 61 6c 6c 65 64 20 6f 6e |can be c|alled on|
|000003e0| 20 61 6e 79 20 65 6c 65 | 6d 65 6e 74 20 2a 2a 2a | any ele|ment ***|
|000003f0| 2a 2a 2a 2a 2a 2a 2a 2f | 0d 0a 0d 0a 66 75 6e 63 |*******/|....func|
|00000400| 74 69 6f 6e 20 55 57 69 | 6e 64 6f 77 4c 69 73 74 |tion UWi|ndowList|
|00000410| 20 43 72 65 61 74 65 49 | 74 65 6d 28 43 6c 61 73 | CreateI|tem(Clas|
|00000420| 73 3c 55 57 69 6e 64 6f | 77 4c 69 73 74 3e 20 43 |s<UWindo|wList> C|
|00000430| 29 0d 0a 7b 0d 0a 09 6c | 6f 63 61 6c 20 55 57 69 |)..{...l|ocal UWi|
|00000440| 6e 64 6f 77 4c 69 73 74 | 20 4e 65 77 45 6c 65 6d |ndowList| NewElem|
|00000450| 65 6e 74 3b 0d 0a 0d 0a | 09 4e 65 77 45 6c 65 6d |ent;....|.NewElem|
|00000460| 65 6e 74 20 3d 20 4e 65 | 77 20 43 3b 0d 0a 09 72 |ent = Ne|w C;...r|
|00000470| 65 74 75 72 6e 20 4e 65 | 77 45 6c 65 6d 65 6e 74 |eturn Ne|wElement|
|00000480| 3b 0d 0a 7d 0d 0a 0d 0a | 66 75 6e 63 74 69 6f 6e |;..}....|function|
|00000490| 20 47 72 61 66 74 4c 65 | 66 74 28 55 57 69 6e 64 | GraftLe|ft(UWind|
|000004a0| 6f 77 4c 69 73 74 20 4e | 65 77 4c 65 66 74 29 0d |owList N|ewLeft).|
|000004b0| 0a 7b 0d 0a 09 61 73 73 | 65 72 74 28 53 65 6e 74 |.{...ass|ert(Sent|
|000004c0| 69 6e 65 6c 2e 62 54 72 | 65 65 53 6f 72 74 29 3b |inel.bTr|eeSort);|
|000004d0| 0d 0a 0d 0a 09 42 72 61 | 6e 63 68 4c 65 66 74 20 |.....Bra|nchLeft |
|000004e0| 3d 20 4e 65 77 4c 65 66 | 74 3b 0d 0a 09 69 66 28 |= NewLef|t;...if(|
|000004f0| 4e 65 77 4c 65 66 74 20 | 21 3d 20 4e 6f 6e 65 29 |NewLeft |!= None)|
|00000500| 0d 0a 09 09 4e 65 77 4c | 65 66 74 2e 50 61 72 65 |....NewL|eft.Pare|
|00000510| 6e 74 4e 6f 64 65 20 3d | 20 53 65 6c 66 3b 0d 0a |ntNode =| Self;..|
|00000520| 7d 0d 0a 0d 0a 66 75 6e | 63 74 69 6f 6e 20 47 72 |}....fun|ction Gr|
|00000530| 61 66 74 52 69 67 68 74 | 28 55 57 69 6e 64 6f 77 |aftRight|(UWindow|
|00000540| 4c 69 73 74 20 4e 65 77 | 52 69 67 68 74 29 0d 0a |List New|Right)..|
|00000550| 7b 0d 0a 09 61 73 73 65 | 72 74 28 53 65 6e 74 69 |{...asse|rt(Senti|
|00000560| 6e 65 6c 2e 62 54 72 65 | 65 53 6f 72 74 29 3b 0d |nel.bTre|eSort);.|
|00000570| 0a 0d 0a 09 42 72 61 6e | 63 68 52 69 67 68 74 20 |....Bran|chRight |
|00000580| 3d 20 4e 65 77 52 69 67 | 68 74 3b 0d 0a 09 69 66 |= NewRig|ht;...if|
|00000590| 28 4e 65 77 52 69 67 68 | 74 20 21 3d 20 4e 6f 6e |(NewRigh|t != Non|
|000005a0| 65 29 0d 0a 09 09 4e 65 | 77 52 69 67 68 74 2e 50 |e)....Ne|wRight.P|
|000005b0| 61 72 65 6e 74 4e 6f 64 | 65 20 3d 20 53 65 6c 66 |arentNod|e = Self|
|000005c0| 3b 0d 0a 7d 0d 0a 0d 0a | 2f 2f 20 52 65 74 75 72 |;..}....|// Retur|
|000005d0| 6e 20 72 69 67 68 74 6d | 6f 73 74 20 63 68 69 6c |n rightm|ost chil|
|000005e0| 64 20 6f 66 20 73 75 62 | 74 72 65 65 0d 0a 66 75 |d of sub|tree..fu|
|000005f0| 6e 63 74 69 6f 6e 20 55 | 57 69 6e 64 6f 77 4c 69 |nction U|WindowLi|
|00000600| 73 74 20 52 69 67 68 74 | 4d 6f 73 74 28 29 0d 0a |st Right|Most()..|
|00000610| 7b 0d 0a 09 6c 6f 63 61 | 6c 20 55 57 69 6e 64 6f |{...loca|l UWindo|
|00000620| 77 4c 69 73 74 20 4c 3b | 0d 0a 0d 0a 09 61 73 73 |wList L;|.....ass|
|00000630| 65 72 74 28 53 65 6e 74 | 69 6e 65 6c 2e 62 54 72 |ert(Sent|inel.bTr|
|00000640| 65 65 53 6f 72 74 29 3b | 0d 0a 0d 0a 09 69 66 28 |eeSort);|.....if(|
|00000650| 42 72 61 6e 63 68 52 69 | 67 68 74 20 3d 3d 20 4e |BranchRi|ght == N|
|00000660| 6f 6e 65 29 0d 0a 09 09 | 72 65 74 75 72 6e 20 4e |one)....|return N|
|00000670| 6f 6e 65 3b 0d 0a 0d 0a | 09 4c 20 3d 20 53 65 6c |one;....|.L = Sel|
|00000680| 66 3b 0d 0a 09 77 68 69 | 6c 65 28 4c 2e 42 72 61 |f;...whi|le(L.Bra|
|00000690| 6e 63 68 52 69 67 68 74 | 20 21 3d 20 4e 6f 6e 65 |nchRight| != None|
|000006a0| 29 0d 0a 09 09 4c 20 3d | 20 4c 2e 42 72 61 6e 63 |)....L =| L.Branc|
|000006b0| 68 52 69 67 68 74 3b 0d | 0a 0d 0a 09 72 65 74 75 |hRight;.|....retu|
|000006c0| 72 6e 20 4c 3b 0d 0a 7d | 0d 0a 0d 0a 2f 2f 20 52 |rn L;..}|....// R|
|000006d0| 65 74 75 72 6e 20 6c 65 | 66 74 6d 6f 73 74 20 63 |eturn le|ftmost c|
|000006e0| 68 69 6c 64 20 6f 66 20 | 73 75 62 74 72 65 65 0d |hild of |subtree.|
|000006f0| 0a 66 75 6e 63 74 69 6f | 6e 20 55 57 69 6e 64 6f |.functio|n UWindo|
|00000700| 77 4c 69 73 74 20 4c 65 | 66 74 4d 6f 73 74 28 29 |wList Le|ftMost()|
|00000710| 0d 0a 7b 0d 0a 09 6c 6f | 63 61 6c 20 55 57 69 6e |..{...lo|cal UWin|
|00000720| 64 6f 77 4c 69 73 74 20 | 4c 3b 0d 0a 0d 0a 09 61 |dowList |L;.....a|
|00000730| 73 73 65 72 74 28 53 65 | 6e 74 69 6e 65 6c 2e 62 |ssert(Se|ntinel.b|
|00000740| 54 72 65 65 53 6f 72 74 | 29 3b 0d 0a 0d 0a 09 69 |TreeSort|);.....i|
|00000750| 66 28 42 72 61 6e 63 68 | 4c 65 66 74 20 3d 3d 20 |f(Branch|Left == |
|00000760| 4e 6f 6e 65 29 0d 0a 09 | 09 72 65 74 75 72 6e 20 |None)...|.return |
|00000770| 4e 6f 6e 65 3b 0d 0a 0d | 0a 09 4c 20 3d 20 53 65 |None;...|..L = Se|
|00000780| 6c 66 3b 0d 0a 09 77 68 | 69 6c 65 28 4c 2e 42 72 |lf;...wh|ile(L.Br|
|00000790| 61 6e 63 68 4c 65 66 74 | 20 21 3d 20 4e 6f 6e 65 |anchLeft| != None|
|000007a0| 29 0d 0a 09 09 4c 20 3d | 20 4c 2e 42 72 61 6e 63 |)....L =| L.Branc|
|000007b0| 68 4c 65 66 74 3b 0d 0a | 0d 0a 09 72 65 74 75 72 |hLeft;..|...retur|
|000007c0| 6e 20 4c 3b 0d 0a 7d 0d | 0a 0d 0a 66 75 6e 63 74 |n L;..}.|...funct|
|000007d0| 69 6f 6e 20 52 65 6d 6f | 76 65 28 29 0d 0a 7b 0d |ion Remo|ve()..{.|
|000007e0| 0a 09 6c 6f 63 61 6c 20 | 55 57 69 6e 64 6f 77 4c |..local |UWindowL|
|000007f0| 69 73 74 20 54 3b 0d 0a | 0d 0a 09 69 66 28 4e 65 |ist T;..|...if(Ne|
|00000800| 78 74 20 21 3d 20 4e 6f | 6e 65 29 0d 0a 09 09 4e |xt != No|ne)....N|
|00000810| 65 78 74 2e 50 72 65 76 | 20 3d 20 50 72 65 76 3b |ext.Prev| = Prev;|
|00000820| 0d 0a 09 0d 0a 09 69 66 | 28 50 72 65 76 20 21 3d |......if|(Prev !=|
|00000830| 20 4e 6f 6e 65 29 0d 0a | 09 09 50 72 65 76 2e 4e | None)..|..Prev.N|
|00000840| 65 78 74 20 3d 20 4e 65 | 78 74 3b 0d 0a 09 0d 0a |ext = Ne|xt;.....|
|00000850| 09 69 66 28 53 65 6e 74 | 69 6e 65 6c 20 21 3d 20 |.if(Sent|inel != |
|00000860| 4e 6f 6e 65 29 0d 0a 09 | 7b 0d 0a 09 09 69 66 28 |None)...|{....if(|
|00000870| 53 65 6e 74 69 6e 65 6c | 2e 62 54 72 65 65 53 6f |Sentinel|.bTreeSo|
|00000880| 72 74 20 26 26 20 50 61 | 72 65 6e 74 4e 6f 64 65 |rt && Pa|rentNode|
|00000890| 21 3d 4e 6f 6e 65 29 0d | 0a 09 09 7b 0d 0a 09 09 |!=None).|...{....|
|000008a0| 09 69 66 28 42 72 61 6e | 63 68 4c 65 66 74 20 21 |.if(Bran|chLeft !|
|000008b0| 3d 20 4e 6f 6e 65 29 0d | 0a 09 09 09 7b 0d 0a 09 |= None).|....{...|
|000008c0| 09 09 09 69 66 28 50 61 | 72 65 6e 74 4e 6f 64 65 |...if(Pa|rentNode|
|000008d0| 2e 42 72 61 6e 63 68 4c | 65 66 74 20 3d 3d 20 53 |.BranchL|eft == S|
|000008e0| 65 6c 66 29 0d 0a 09 09 | 09 09 09 50 61 72 65 6e |elf)....|...Paren|
|000008f0| 74 4e 6f 64 65 2e 47 72 | 61 66 74 4c 65 66 74 28 |tNode.Gr|aftLeft(|
|00000900| 42 72 61 6e 63 68 4c 65 | 66 74 29 3b 0d 0a 09 09 |BranchLe|ft);....|
|00000910| 09 09 69 66 28 50 61 72 | 65 6e 74 4e 6f 64 65 2e |..if(Par|entNode.|
|00000920| 42 72 61 6e 63 68 52 69 | 67 68 74 20 3d 3d 20 53 |BranchRi|ght == S|
|00000930| 65 6c 66 29 0d 0a 09 09 | 09 09 09 50 61 72 65 6e |elf)....|...Paren|
|00000940| 74 4e 6f 64 65 2e 47 72 | 61 66 74 52 69 67 68 74 |tNode.Gr|aftRight|
|00000950| 28 42 72 61 6e 63 68 4c | 65 66 74 29 3b 0d 0a 0d |(BranchL|eft);...|
|00000960| 0a 09 09 09 09 2f 2f 20 | 49 66 20 77 65 20 68 61 |.....// |If we ha|
|00000970| 64 20 61 20 72 69 67 68 | 74 20 62 72 61 6e 63 68 |d a righ|t branch|
|00000980| 20 77 65 20 62 65 74 74 | 65 72 20 6d 6f 76 65 20 | we bett|er move |
|00000990| 69 74 0d 0a 09 09 09 09 | 2f 2f 20 69 6e 74 6f 20 |it......|// into |
|000009a0| 74 68 65 20 66 61 72 20 | 72 69 67 68 74 20 6f 66 |the far |right of|
|000009b0| 20 74 68 65 20 6c 65 66 | 74 20 62 72 61 6e 63 68 | the lef|t branch|
|000009c0| 2e 0d 0a 0d 0a 09 09 09 | 09 54 20 3d 20 42 72 61 |........|.T = Bra|
|000009d0| 6e 63 68 4c 65 66 74 2e | 52 69 67 68 74 6d 6f 73 |nchLeft.|Rightmos|
|000009e0| 74 28 29 3b 0d 0a 09 09 | 09 09 69 66 28 54 20 21 |t();....|..if(T !|
|000009f0| 3d 20 4e 6f 6e 65 29 0d | 0a 09 09 09 09 09 54 2e |= None).|......T.|
|00000a00| 47 72 61 66 74 52 69 67 | 68 74 28 42 72 61 6e 63 |GraftRig|ht(Branc|
|00000a10| 68 52 69 67 68 74 29 3b | 0d 0a 09 09 09 7d 0d 0a |hRight);|.....}..|
|00000a20| 09 09 09 65 6c 73 65 0d | 0a 09 09 09 7b 0d 0a 09 |...else.|....{...|
|00000a30| 09 09 09 69 66 28 50 61 | 72 65 6e 74 4e 6f 64 65 |...if(Pa|rentNode|
|00000a40| 2e 42 72 61 6e 63 68 4c | 65 66 74 20 3d 3d 20 53 |.BranchL|eft == S|
|00000a50| 65 6c 66 29 0d 0a 09 09 | 09 09 09 50 61 72 65 6e |elf)....|...Paren|
|00000a60| 74 4e 6f 64 65 2e 47 72 | 61 66 74 4c 65 66 74 28 |tNode.Gr|aftLeft(|
|00000a70| 42 72 61 6e 63 68 52 69 | 67 68 74 29 3b 0d 0a 09 |BranchRi|ght);...|
|00000a80| 09 09 09 69 66 28 50 61 | 72 65 6e 74 4e 6f 64 65 |...if(Pa|rentNode|
|00000a90| 2e 42 72 61 6e 63 68 52 | 69 67 68 74 20 3d 3d 20 |.BranchR|ight == |
|00000aa0| 53 65 6c 66 29 0d 0a 09 | 09 09 09 09 50 61 72 65 |Self)...|....Pare|
|00000ab0| 6e 74 4e 6f 64 65 2e 47 | 72 61 66 74 52 69 67 68 |ntNode.G|raftRigh|
|00000ac0| 74 28 42 72 61 6e 63 68 | 52 69 67 68 74 29 3b 0d |t(Branch|Right);.|
|00000ad0| 0a 0d 0a 09 09 09 09 2f | 2f 20 6e 6f 20 6c 65 66 |......./|/ no lef|
|00000ae0| 74 20 62 72 61 6e 63 68 | 20 74 6f 20 77 6f 72 72 |t branch| to worr|
|00000af0| 79 20 61 62 6f 75 74 2e | 0d 0a 09 09 09 7d 0d 0a |y about.|.....}..|
|00000b00| 09 0d 0a 09 09 09 50 61 | 72 65 6e 74 4e 6f 64 65 |......Pa|rentNode|
|00000b10| 20 3d 20 4e 6f 6e 65 3b | 0d 0a 09 09 09 42 72 61 | = None;|.....Bra|
|00000b20| 6e 63 68 4c 65 66 74 20 | 3d 20 4e 6f 6e 65 3b 0d |nchLeft |= None;.|
|00000b30| 0a 09 09 09 42 72 61 6e | 63 68 52 69 67 68 74 20 |....Bran|chRight |
|00000b40| 3d 20 4e 6f 6e 65 3b 0d | 0a 09 09 7d 0d 0a 0d 0a |= None;.|...}....|
|00000b50| 09 09 53 65 6e 74 69 6e | 65 6c 2e 49 6e 74 65 72 |..Sentin|el.Inter|
|00000b60| 6e 61 6c 43 6f 75 6e 74 | 2d 2d 3b 0d 0a 09 09 53 |nalCount|--;....S|
|00000b70| 65 6e 74 69 6e 65 6c 2e | 62 49 74 65 6d 4f 72 64 |entinel.|bItemOrd|
|00000b80| 65 72 43 68 61 6e 67 65 | 64 20 3d 20 54 72 75 65 |erChange|d = True|
|00000b90| 3b 0d 0a 0d 0a 09 09 69 | 66 28 53 65 6e 74 69 6e |;......i|f(Sentin|
|00000ba0| 65 6c 2e 4c 61 73 74 20 | 3d 3d 20 53 65 6c 66 29 |el.Last |== Self)|
|00000bb0| 0d 0a 09 09 09 53 65 6e | 74 69 6e 65 6c 2e 4c 61 |.....Sen|tinel.La|
|00000bc0| 73 74 20 3d 20 50 72 65 | 76 3b 0d 0a 0d 0a 09 09 |st = Pre|v;......|
|00000bd0| 50 72 65 76 3d 4e 6f 6e | 65 3b 0d 0a 09 09 4e 65 |Prev=Non|e;....Ne|
|00000be0| 78 74 3d 4e 6f 6e 65 3b | 0d 0a 09 0d 0a 09 2f 2a |xt=None;|....../*|
|00000bf0| 09 53 65 6e 74 69 6e 65 | 6c 2e 56 61 6c 69 64 61 |.Sentine|l.Valida|
|00000c00| 74 65 28 29 3b 20 20 2a | 2f 0d 0a 09 09 53 65 6e |te(); *|/....Sen|
|00000c10| 74 69 6e 65 6c 20 3d 20 | 4e 6f 6e 65 3b 0d 0a 09 |tinel = |None;...|
|00000c20| 7d 0d 0a 7d 0d 0a 0d 0a | 66 75 6e 63 74 69 6f 6e |}..}....|function|
|00000c30| 20 69 6e 74 20 43 6f 6d | 70 61 72 65 28 55 57 69 | int Com|pare(UWi|
|00000c40| 6e 64 6f 77 4c 69 73 74 | 20 54 2c 20 55 57 69 6e |ndowList| T, UWin|
|00000c50| 64 6f 77 4c 69 73 74 20 | 42 29 0d 0a 7b 0d 0a 09 |dowList |B)..{...|
|00000c60| 2f 2f 20 64 65 63 6c 61 | 72 65 20 61 63 74 75 61 |// decla|re actua|
|00000c70| 6c 20 73 6f 72 74 20 6d | 65 74 68 6f 64 20 69 6e |l sort m|ethod in|
|00000c80| 20 73 75 62 63 6c 61 73 | 73 0d 0a 09 72 65 74 75 | subclas|s...retu|
|00000c90| 72 6e 20 30 3b 0d 0a 7d | 0d 0a 0d 0a 2f 2f 20 49 |rn 0;..}|....// I|
|00000ca0| 6e 73 65 72 74 73 20 61 | 20 6e 65 77 20 65 6c 65 |nserts a| new ele|
|00000cb0| 6d 65 6e 74 20 62 65 66 | 6f 72 65 20 75 73 2e 20 |ment bef|ore us. |
|00000cc0| 20 44 4f 20 4e 4f 54 20 | 43 41 4c 4c 20 6f 6e 20 | DO NOT |CALL on |
|00000cd0| 74 68 65 20 73 65 6e 74 | 69 6e 65 6c 2e 0d 0a 66 |the sent|inel...f|
|00000ce0| 75 6e 63 74 69 6f 6e 20 | 55 57 69 6e 64 6f 77 4c |unction |UWindowL|
|00000cf0| 69 73 74 20 49 6e 73 65 | 72 74 42 65 66 6f 72 65 |ist Inse|rtBefore|
|00000d00| 28 43 6c 61 73 73 3c 55 | 57 69 6e 64 6f 77 4c 69 |(Class<U|WindowLi|
|00000d10| 73 74 3e 20 43 29 0d 0a | 7b 0d 0a 09 6c 6f 63 61 |st> C)..|{...loca|
|00000d20| 6c 20 55 57 69 6e 64 6f | 77 4c 69 73 74 20 4e 65 |l UWindo|wList Ne|
|00000d30| 77 45 6c 65 6d 65 6e 74 | 3b 0d 0a 0d 0a 09 4e 65 |wElement|;.....Ne|
|00000d40| 77 45 6c 65 6d 65 6e 74 | 20 3d 20 43 72 65 61 74 |wElement| = Creat|
|00000d50| 65 49 74 65 6d 28 43 29 | 3b 0d 0a 09 49 6e 73 65 |eItem(C)|;...Inse|
|00000d60| 72 74 49 74 65 6d 42 65 | 66 6f 72 65 28 4e 65 77 |rtItemBe|fore(New|
|00000d70| 45 6c 65 6d 65 6e 74 29 | 3b 0d 0a 0d 0a 09 72 65 |Element)|;.....re|
|00000d80| 74 75 72 6e 20 4e 65 77 | 45 6c 65 6d 65 6e 74 3b |turn New|Element;|
|00000d90| 0d 0a 7d 0d 0a 0d 0a 66 | 75 6e 63 74 69 6f 6e 20 |..}....f|unction |
|00000da0| 55 57 69 6e 64 6f 77 4c | 69 73 74 20 49 6e 73 65 |UWindowL|ist Inse|
|00000db0| 72 74 41 66 74 65 72 28 | 43 6c 61 73 73 3c 55 57 |rtAfter(|Class<UW|
|00000dc0| 69 6e 64 6f 77 4c 69 73 | 74 3e 20 43 29 0d 0a 7b |indowLis|t> C)..{|
|00000dd0| 0d 0a 09 6c 6f 63 61 6c | 20 55 57 69 6e 64 6f 77 |...local| UWindow|
|00000de0| 4c 69 73 74 20 4e 65 77 | 45 6c 65 6d 65 6e 74 3b |List New|Element;|
|00000df0| 0d 0a 0d 0a 09 4e 65 77 | 45 6c 65 6d 65 6e 74 20 |.....New|Element |
|00000e00| 3d 20 43 72 65 61 74 65 | 49 74 65 6d 28 43 29 3b |= Create|Item(C);|
|00000e10| 0d 0a 09 49 6e 73 65 72 | 74 49 74 65 6d 41 66 74 |...Inser|tItemAft|
|00000e20| 65 72 28 4e 65 77 45 6c | 65 6d 65 6e 74 29 3b 0d |er(NewEl|ement);.|
|00000e30| 0a 0d 0a 09 72 65 74 75 | 72 6e 20 4e 65 77 45 6c |....retu|rn NewEl|
|00000e40| 65 6d 65 6e 74 3b 0d 0a | 7d 0d 0a 0d 0a 0d 0a 2f |ement;..|}....../|
|00000e50| 2f 20 49 6e 73 65 72 74 | 73 20 61 6e 20 65 6c 65 |/ Insert|s an ele|
|00000e60| 6d 65 6e 74 20 62 65 66 | 6f 72 65 20 75 73 2e 20 |ment bef|ore us. |
|00000e70| 20 44 4f 20 4e 4f 54 20 | 43 41 4c 4c 20 6f 6e 20 | DO NOT |CALL on |
|00000e80| 74 68 65 20 73 65 6e 74 | 69 6e 65 6c 2e 0d 0a 66 |the sent|inel...f|
|00000e90| 75 6e 63 74 69 6f 6e 20 | 49 6e 73 65 72 74 49 74 |unction |InsertIt|
|00000ea0| 65 6d 42 65 66 6f 72 65 | 28 55 57 69 6e 64 6f 77 |emBefore|(UWindow|
|00000eb0| 4c 69 73 74 20 4e 65 77 | 45 6c 65 6d 65 6e 74 29 |List New|Element)|
|00000ec0| 0d 0a 7b 0d 0a 09 61 73 | 73 65 72 74 28 53 65 6e |..{...as|sert(Sen|
|00000ed0| 74 69 6e 65 6c 20 21 3d | 20 53 65 6c 66 29 3b 0d |tinel !=| Self);.|
|00000ee0| 0a 0d 0a 09 4e 65 77 45 | 6c 65 6d 65 6e 74 2e 42 |....NewE|lement.B|
|00000ef0| 72 61 6e 63 68 4c 65 66 | 74 20 3d 20 4e 6f 6e 65 |ranchLef|t = None|
|00000f00| 3b 0d 0a 09 4e 65 77 45 | 6c 65 6d 65 6e 74 2e 42 |;...NewE|lement.B|
|00000f10| 72 61 6e 63 68 52 69 67 | 68 74 20 3d 20 4e 6f 6e |ranchRig|ht = Non|
|00000f20| 65 3b 0d 0a 09 4e 65 77 | 45 6c 65 6d 65 6e 74 2e |e;...New|Element.|
|00000f30| 50 61 72 65 6e 74 4e 6f | 64 65 20 3d 20 4e 6f 6e |ParentNo|de = Non|
|00000f40| 65 3b 0d 0a 09 4e 65 77 | 45 6c 65 6d 65 6e 74 2e |e;...New|Element.|
|00000f50| 53 65 6e 74 69 6e 65 6c | 20 3d 20 53 65 6e 74 69 |Sentinel| = Senti|
|00000f60| 6e 65 6c 3b 09 0d 0a 09 | 4e 65 77 45 6c 65 6d 65 |nel;....|NewEleme|
|00000f70| 6e 74 2e 42 72 61 6e 63 | 68 4c 65 66 74 20 3d 20 |nt.Branc|hLeft = |
|00000f80| 4e 6f 6e 65 3b 0d 0a 09 | 4e 65 77 45 6c 65 6d 65 |None;...|NewEleme|
|00000f90| 6e 74 2e 42 72 61 6e 63 | 68 52 69 67 68 74 20 3d |nt.Branc|hRight =|
|00000fa0| 20 4e 6f 6e 65 3b 0d 0a | 09 4e 65 77 45 6c 65 6d | None;..|.NewElem|
|00000fb0| 65 6e 74 2e 50 61 72 65 | 6e 74 4e 6f 64 65 20 3d |ent.Pare|ntNode =|
|00000fc0| 20 4e 6f 6e 65 3b 0d 0a | 09 4e 65 77 45 6c 65 6d | None;..|.NewElem|
|00000fd0| 65 6e 74 2e 50 72 65 76 | 20 3d 20 50 72 65 76 3b |ent.Prev| = Prev;|
|00000fe0| 09 0d 0a 09 50 72 65 76 | 2e 4e 65 78 74 20 3d 20 |....Prev|.Next = |
|00000ff0| 4e 65 77 45 6c 65 6d 65 | 6e 74 3b 0d 0a 09 50 72 |NewEleme|nt;...Pr|
|00001000| 65 76 20 3d 20 4e 65 77 | 45 6c 65 6d 65 6e 74 3b |ev = New|Element;|
|00001010| 0d 0a 09 4e 65 77 45 6c | 65 6d 65 6e 74 2e 4e 65 |...NewEl|ement.Ne|
|00001020| 78 74 20 3d 20 53 65 6c | 66 3b 0d 0a 0d 0a 09 69 |xt = Sel|f;.....i|
|00001030| 66 28 53 65 6e 74 69 6e | 65 6c 2e 4e 65 78 74 20 |f(Sentin|el.Next |
|00001040| 3d 3d 20 53 65 6c 66 29 | 0d 0a 09 09 53 65 6e 74 |== Self)|....Sent|
|00001050| 69 6e 65 6c 2e 4e 65 78 | 74 20 3d 20 4e 65 77 45 |inel.Nex|t = NewE|
|00001060| 6c 65 6d 65 6e 74 3b 0d | 0a 0d 0a 09 53 65 6e 74 |lement;.|....Sent|
|00001070| 69 6e 65 6c 2e 49 6e 74 | 65 72 6e 61 6c 43 6f 75 |inel.Int|ernalCou|
|00001080| 6e 74 2b 2b 3b 0d 0a 09 | 53 65 6e 74 69 6e 65 6c |nt++;...|Sentinel|
|00001090| 2e 62 49 74 65 6d 4f 72 | 64 65 72 43 68 61 6e 67 |.bItemOr|derChang|
|000010a0| 65 64 20 3d 20 54 72 75 | 65 3b 0d 0a 7d 0d 0a 0d |ed = Tru|e;..}...|
|000010b0| 0a 66 75 6e 63 74 69 6f | 6e 20 49 6e 73 65 72 74 |.functio|n Insert|
|000010c0| 49 74 65 6d 41 66 74 65 | 72 28 55 57 69 6e 64 6f |ItemAfte|r(UWindo|
|000010d0| 77 4c 69 73 74 20 4e 65 | 77 45 6c 65 6d 65 6e 74 |wList Ne|wElement|
|000010e0| 2c 20 6f 70 74 69 6f 6e | 61 6c 20 62 6f 6f 6c 20 |, option|al bool |
|000010f0| 62 43 68 65 63 6b 53 68 | 6f 77 49 74 65 6d 29 0d |bCheckSh|owItem).|
|00001100| 0a 7b 0d 0a 09 6c 6f 63 | 61 6c 20 55 57 69 6e 64 |.{...loc|al UWind|
|00001110| 6f 77 4c 69 73 74 20 4e | 3b 0d 0a 09 0d 0a 09 4e |owList N|;......N|
|00001120| 20 3d 20 4e 65 78 74 3b | 0d 0a 09 69 66 28 62 43 | = Next;|...if(bC|
|00001130| 68 65 63 6b 53 68 6f 77 | 49 74 65 6d 29 0d 0a 09 |heckShow|Item)...|
|00001140| 09 77 68 69 6c 65 28 4e | 20 21 3d 20 4e 6f 6e 65 |.while(N| != None|
|00001150| 20 26 26 20 21 4e 2e 53 | 68 6f 77 54 68 69 73 49 | && !N.S|howThisI|
|00001160| 74 65 6d 28 29 29 0d 0a | 09 09 09 4e 20 3d 20 4e |tem())..|...N = N|
|00001170| 2e 4e 65 78 74 3b 20 0d | 0a 0d 0a 09 69 66 28 4e |.Next; .|....if(N|
|00001180| 20 21 3d 20 4e 6f 6e 65 | 29 0d 0a 09 09 4e 2e 49 | != None|)....N.I|
|00001190| 6e 73 65 72 74 49 74 65 | 6d 42 65 66 6f 72 65 28 |nsertIte|mBefore(|
|000011a0| 4e 65 77 45 6c 65 6d 65 | 6e 74 29 3b 0d 0a 09 65 |NewEleme|nt);...e|
|000011b0| 6c 73 65 0d 0a 09 09 53 | 65 6e 74 69 6e 65 6c 2e |lse....S|entinel.|
|000011c0| 44 6f 41 70 70 65 6e 64 | 49 74 65 6d 28 4e 65 77 |DoAppend|Item(New|
|000011d0| 45 6c 65 6d 65 6e 74 29 | 3b 0d 0a 09 53 65 6e 74 |Element)|;...Sent|
|000011e0| 69 6e 65 6c 2e 62 49 74 | 65 6d 4f 72 64 65 72 43 |inel.bIt|emOrderC|
|000011f0| 68 61 6e 67 65 64 20 3d | 20 54 72 75 65 3b 0d 0a |hanged =| True;..|
|00001200| 7d 0d 0a 0d 0a 66 75 6e | 63 74 69 6f 6e 20 43 6f |}....fun|ction Co|
|00001210| 6e 74 69 6e 75 65 53 6f | 72 74 28 29 0d 0a 7b 0d |ntinueSo|rt()..{.|
|00001220| 0a 09 6c 6f 63 61 6c 20 | 55 57 69 6e 64 6f 77 4c |..local |UWindowL|
|00001230| 69 73 74 20 4e 3b 0d 0a | 0d 0a 09 43 6f 6d 70 61 |ist N;..|...Compa|
|00001240| 72 65 43 6f 75 6e 74 20 | 3d 20 30 3b 0d 0a 09 62 |reCount |= 0;...b|
|00001250| 53 6f 72 74 53 75 73 70 | 65 6e 64 65 64 20 3d 20 |SortSusp|ended = |
|00001260| 46 61 6c 73 65 3b 0d 0a | 0d 0a 09 77 68 69 6c 65 |False;..|...while|
|00001270| 28 43 75 72 72 65 6e 74 | 53 6f 72 74 49 74 65 6d |(Current|SortItem|
|00001280| 20 21 3d 20 4e 6f 6e 65 | 29 0d 0a 09 7b 0d 0a 09 | != None|)...{...|
|00001290| 09 4e 20 3d 20 43 75 72 | 72 65 6e 74 53 6f 72 74 |.N = Cur|rentSort|
|000012a0| 49 74 65 6d 2e 4e 65 78 | 74 3b 0d 0a 09 09 41 70 |Item.Nex|t;....Ap|
|000012b0| 70 65 6e 64 49 74 65 6d | 28 43 75 72 72 65 6e 74 |pendItem|(Current|
|000012c0| 53 6f 72 74 49 74 65 6d | 29 3b 0d 0a 09 09 43 75 |SortItem|);....Cu|
|000012d0| 72 72 65 6e 74 53 6f 72 | 74 49 74 65 6d 20 3d 20 |rrentSor|tItem = |
|000012e0| 4e 3b 0d 0a 0d 0a 09 09 | 2f 2f 20 73 70 6c 69 74 |N;......|// split|
|000012f0| 20 73 6f 72 74 20 6f 76 | 65 72 20 6d 75 6c 74 69 | sort ov|er multi|
|00001300| 70 6c 65 20 66 72 61 6d | 65 73 2c 20 69 66 20 69 |ple fram|es, if i|
|00001310| 74 27 73 20 42 49 47 0d | 0a 09 09 69 66 28 43 6f |t's BIG.|...if(Co|
|00001320| 6d 70 61 72 65 43 6f 75 | 6e 74 20 3e 3d 20 31 30 |mpareCou|nt >= 10|
|00001330| 30 30 30 20 26 26 20 62 | 53 75 73 70 65 6e 64 61 |000 && b|Suspenda|
|00001340| 62 6c 65 53 6f 72 74 29 | 0d 0a 09 09 7b 0d 0a 09 |bleSort)|....{...|
|00001350| 09 09 62 53 6f 72 74 53 | 75 73 70 65 6e 64 65 64 |..bSortS|uspended|
|00001360| 20 3d 20 54 72 75 65 3b | 0d 0a 09 09 09 72 65 74 | = True;|.....ret|
|00001370| 75 72 6e 3b 0d 0a 09 09 | 7d 0d 0a 09 7d 09 09 0d |urn;....|}...}...|
|00001380| 0a 7d 0d 0a 0d 0a 66 75 | 6e 63 74 69 6f 6e 20 54 |.}....fu|nction T|
|00001390| 69 63 6b 28 66 6c 6f 61 | 74 20 44 65 6c 74 61 29 |ick(floa|t Delta)|
|000013a0| 0d 0a 7b 0d 0a 09 69 66 | 28 62 53 6f 72 74 53 75 |..{...if|(bSortSu|
|000013b0| 73 70 65 6e 64 65 64 29 | 0d 0a 09 09 43 6f 6e 74 |spended)|....Cont|
|000013c0| 69 6e 75 65 53 6f 72 74 | 28 29 3b 0d 0a 7d 0d 0a |inueSort|();..}..|
|000013d0| 0d 0a 66 75 6e 63 74 69 | 6f 6e 20 55 57 69 6e 64 |..functi|on UWind|
|000013e0| 6f 77 4c 69 73 74 20 53 | 6f 72 74 28 29 0d 0a 7b |owList S|ort()..{|
|000013f0| 0d 0a 09 6c 6f 63 61 6c | 20 55 57 69 6e 64 6f 77 |...local| UWindow|
|00001400| 4c 69 73 74 20 53 3b 0d | 0a 09 6c 6f 63 61 6c 20 |List S;.|..local |
|00001410| 55 57 69 6e 64 6f 77 4c | 69 73 74 20 43 75 72 72 |UWindowL|ist Curr|
|00001420| 65 6e 74 49 74 65 6d 3b | 0d 0a 09 6c 6f 63 61 6c |entItem;|...local|
|00001430| 20 55 57 69 6e 64 6f 77 | 4c 69 73 74 20 50 72 65 | UWindow|List Pre|
|00001440| 76 69 6f 75 73 3b 0d 0a | 09 6c 6f 63 61 6c 20 55 |vious;..|.local U|
|00001450| 57 69 6e 64 6f 77 4c 69 | 73 74 20 42 65 73 74 3b |WindowLi|st Best;|
|00001460| 0d 0a 09 6c 6f 63 61 6c | 20 55 57 69 6e 64 6f 77 |...local| UWindow|
|00001470| 4c 69 73 74 20 42 65 73 | 74 50 72 65 76 3b 0d 0a |List Bes|tPrev;..|
|00001480| 0d 0a 09 69 66 28 62 54 | 72 65 65 53 6f 72 74 29 |...if(bT|reeSort)|
|00001490| 0d 0a 09 7b 0d 0a 09 09 | 69 66 28 62 53 6f 72 74 |...{....|if(bSort|
|000014a0| 53 75 73 70 65 6e 64 65 | 64 29 0d 0a 09 09 7b 0d |Suspende|d)....{.|
|000014b0| 0a 09 09 09 43 6f 6e 74 | 69 6e 75 65 53 6f 72 74 |....Cont|inueSort|
|000014c0| 28 29 3b 0d 0a 09 09 09 | 72 65 74 75 72 6e 20 53 |();.....|return S|
|000014d0| 65 6c 66 3b 0d 0a 09 09 | 7d 0d 0a 0d 0a 09 09 43 |elf;....|}......C|
|000014e0| 75 72 72 65 6e 74 53 6f | 72 74 49 74 65 6d 20 3d |urrentSo|rtItem =|
|000014f0| 20 4e 65 78 74 3b 0d 0a | 09 09 44 69 73 63 6f 6e | Next;..|..Discon|
|00001500| 6e 65 63 74 4c 69 73 74 | 28 29 3b 0d 0a 09 09 43 |nectList|();....C|
|00001510| 6f 6e 74 69 6e 75 65 53 | 6f 72 74 28 29 3b 0d 0a |ontinueS|ort();..|
|00001520| 09 09 72 65 74 75 72 6e | 20 53 65 6c 66 3b 0d 0a |..return| Self;..|
|00001530| 09 7d 0d 0a 0d 0a 09 43 | 75 72 72 65 6e 74 49 74 |.}.....C|urrentIt|
|00001540| 65 6d 20 3d 20 53 65 6c | 66 3b 0d 0a 0d 0a 09 77 |em = Sel|f;.....w|
|00001550| 68 69 6c 65 28 43 75 72 | 72 65 6e 74 49 74 65 6d |hile(Cur|rentItem|
|00001560| 20 21 3d 20 4e 6f 6e 65 | 29 0d 0a 09 7b 0d 0a 09 | != None|)...{...|
|00001570| 09 53 20 3d 20 43 75 72 | 72 65 6e 74 49 74 65 6d |.S = Cur|rentItem|
|00001580| 2e 4e 65 78 74 3b 09 42 | 65 73 74 20 3d 20 43 75 |.Next;.B|est = Cu|
|00001590| 72 72 65 6e 74 49 74 65 | 6d 2e 4e 65 78 74 3b 0d |rrentIte|m.Next;.|
|000015a0| 0a 09 09 50 72 65 76 69 | 6f 75 73 20 3d 20 43 75 |...Previ|ous = Cu|
|000015b0| 72 72 65 6e 74 49 74 65 | 6d 3b 09 42 65 73 74 50 |rrentIte|m;.BestP|
|000015c0| 72 65 76 20 3d 20 43 75 | 72 72 65 6e 74 49 74 65 |rev = Cu|rrentIte|
|000015d0| 6d 3b 0d 0a 09 09 0d 0a | 09 09 2f 2f 20 46 69 6e |m;......|..// Fin|
|000015e0| 64 20 74 68 65 20 62 65 | 73 74 20 73 65 72 76 65 |d the be|st serve|
|000015f0| 72 0d 0a 09 09 77 68 69 | 6c 65 28 53 20 21 3d 20 |r....whi|le(S != |
|00001600| 4e 6f 6e 65 29 0d 0a 09 | 09 7b 0d 0a 09 09 09 69 |None)...|.{.....i|
|00001610| 66 28 43 75 72 72 65 6e | 74 49 74 65 6d 2e 43 6f |f(Curren|tItem.Co|
|00001620| 6d 70 61 72 65 28 53 2c | 20 42 65 73 74 29 20 3c |mpare(S,| Best) <|
|00001630| 3d 20 30 29 20 0d 0a 09 | 09 09 7b 0d 0a 09 09 09 |= 0) ...|..{.....|
|00001640| 09 42 65 73 74 20 3d 20 | 53 3b 0d 0a 09 09 09 09 |.Best = |S;......|
|00001650| 42 65 73 74 50 72 65 76 | 20 3d 20 50 72 65 76 69 |BestPrev| = Previ|
|00001660| 6f 75 73 3b 0d 0a 09 09 | 09 7d 0d 0a 09 09 09 0d |ous;....|.}......|
|00001670| 0a 09 09 09 50 72 65 76 | 69 6f 75 73 20 3d 20 53 |....Prev|ious = S|
|00001680| 3b 0d 0a 09 09 09 53 20 | 3d 20 53 2e 4e 65 78 74 |;.....S |= S.Next|
|00001690| 3b 0d 0a 09 09 7d 0d 0a | 0d 0a 09 09 2f 2f 20 49 |;....}..|....// I|
|000016a0| 66 20 77 65 27 72 65 20 | 6e 6f 74 20 61 6c 72 65 |f we're |not alre|
|000016b0| 61 64 79 20 69 6e 20 74 | 68 65 20 72 69 67 68 74 |ady in t|he right|
|000016c0| 20 6f 72 64 65 72 2c 20 | 6d 6f 76 65 20 74 68 65 | order, |move the|
|000016d0| 20 62 65 73 74 20 6f 6e | 65 20 6e 65 78 74 2e 0d | best on|e next..|
|000016e0| 0a 09 09 69 66 28 42 65 | 73 74 20 21 3d 20 43 75 |...if(Be|st != Cu|
|000016f0| 72 72 65 6e 74 49 74 65 | 6d 2e 4e 65 78 74 29 0d |rrentIte|m.Next).|
|00001700| 0a 09 09 7b 0d 0a 09 09 | 09 2f 2f 20 44 65 6c 65 |...{....|.// Dele|
|00001710| 74 65 20 42 65 73 74 27 | 73 20 6f 6c 64 20 70 6f |te Best'|s old po|
|00001720| 73 69 74 69 6f 6e 0d 0a | 09 09 09 42 65 73 74 50 |sition..|...BestP|
|00001730| 72 65 76 2e 4e 65 78 74 | 20 3d 20 42 65 73 74 2e |rev.Next| = Best.|
|00001740| 4e 65 78 74 3b 0d 0a 09 | 09 09 69 66 28 42 65 73 |Next;...|..if(Bes|
|00001750| 74 50 72 65 76 2e 4e 65 | 78 74 20 21 3d 20 4e 6f |tPrev.Ne|xt != No|
|00001760| 6e 65 29 0d 0a 09 09 09 | 09 42 65 73 74 50 72 65 |ne).....|.BestPre|
|00001770| 76 2e 4e 65 78 74 2e 50 | 72 65 76 20 3d 20 42 65 |v.Next.P|rev = Be|
|00001780| 73 74 50 72 65 76 3b 0d | 0a 0d 0a 09 09 09 2f 2f |stPrev;.|......//|
|00001790| 20 46 69 78 20 53 65 6c | 66 20 61 6e 64 20 42 65 | Fix Sel|f and Be|
|000017a0| 73 74 0d 0a 09 09 09 42 | 65 73 74 2e 50 72 65 76 |st.....B|est.Prev|
|000017b0| 20 3d 20 43 75 72 72 65 | 6e 74 49 74 65 6d 3b 0d | = Curre|ntItem;.|
|000017c0| 0a 09 09 09 42 65 73 74 | 2e 4e 65 78 74 20 3d 20 |....Best|.Next = |
|000017d0| 43 75 72 72 65 6e 74 49 | 74 65 6d 2e 4e 65 78 74 |CurrentI|tem.Next|
|000017e0| 3b 0d 0a 09 09 09 43 75 | 72 72 65 6e 74 49 74 65 |;.....Cu|rrentIte|
|000017f0| 6d 2e 4e 65 78 74 2e 50 | 72 65 76 20 3d 20 42 65 |m.Next.P|rev = Be|
|00001800| 73 74 3b 20 0d 0a 09 09 | 09 43 75 72 72 65 6e 74 |st; ....|.Current|
|00001810| 49 74 65 6d 2e 4e 65 78 | 74 20 3d 20 42 65 73 74 |Item.Nex|t = Best|
|00001820| 3b 0d 0a 09 09 09 0d 0a | 09 09 09 2f 2f 20 46 69 |;.......|...// Fi|
|00001830| 78 20 75 70 20 53 65 6e | 74 69 6e 65 6c 20 69 66 |x up Sen|tinel if|
|00001840| 20 42 65 73 74 20 77 61 | 73 20 61 6c 73 6f 20 4c | Best wa|s also L|
|00001850| 61 73 74 20 0d 0a 09 09 | 09 69 66 28 53 65 6e 74 |ast ....|.if(Sent|
|00001860| 69 6e 65 6c 2e 4c 61 73 | 74 20 3d 3d 20 42 65 73 |inel.Las|t == Bes|
|00001870| 74 29 0d 0a 09 09 09 7b | 0d 0a 09 09 09 09 53 65 |t).....{|......Se|
|00001880| 6e 74 69 6e 65 6c 2e 4c | 61 73 74 20 3d 20 42 65 |ntinel.L|ast = Be|
|00001890| 73 74 50 72 65 76 3b 0d | 0a 09 09 09 09 69 66 28 |stPrev;.|.....if(|
|000018a0| 53 65 6e 74 69 6e 65 6c | 2e 4c 61 73 74 20 3d 3d |Sentinel|.Last ==|
|000018b0| 20 4e 6f 6e 65 29 0d 0a | 09 09 09 09 09 53 65 6e | None)..|.....Sen|
|000018c0| 74 69 6e 65 6c 2e 4c 61 | 73 74 20 3d 20 53 65 6e |tinel.La|st = Sen|
|000018d0| 74 69 6e 65 6c 3b 0d 0a | 09 09 09 7d 0d 0a 09 09 |tinel;..|...}....|
|000018e0| 7d 0d 0a 0d 0a 09 09 43 | 75 72 72 65 6e 74 49 74 |}......C|urrentIt|
|000018f0| 65 6d 20 3d 20 43 75 72 | 72 65 6e 74 49 74 65 6d |em = Cur|rentItem|
|00001900| 2e 4e 65 78 74 3b 0d 0a | 09 7d 0d 0a 0d 0a 09 2f |.Next;..|.}...../|
|00001910| 2f 56 61 6c 69 64 61 74 | 65 28 29 3b 0d 0a 09 72 |/Validat|e();...r|
|00001920| 65 74 75 72 6e 20 53 65 | 6c 66 3b 0d 0a 7d 0d 0a |eturn Se|lf;..}..|
|00001930| 0d 0a 66 75 6e 63 74 69 | 6f 6e 20 44 69 73 63 6f |..functi|on Disco|
|00001940| 6e 6e 65 63 74 4c 69 73 | 74 28 29 20 0d 0a 7b 0d |nnectLis|t() ..{.|
|00001950| 0a 09 4e 65 78 74 3d 4e | 6f 6e 65 3b 0d 0a 09 4c |..Next=N|one;...L|
|00001960| 61 73 74 3d 53 65 6c 66 | 3b 0d 0a 09 50 72 65 76 |ast=Self|;...Prev|
|00001970| 3d 4e 6f 6e 65 3b 0d 0a | 09 42 72 61 6e 63 68 4c |=None;..|.BranchL|
|00001980| 65 66 74 20 3d 20 4e 6f | 6e 65 3b 0d 0a 09 42 72 |eft = No|ne;...Br|
|00001990| 61 6e 63 68 52 69 67 68 | 74 20 3d 20 4e 6f 6e 65 |anchRigh|t = None|
|000019a0| 3b 0d 0a 09 50 61 72 65 | 6e 74 4e 6f 64 65 20 3d |;...Pare|ntNode =|
|000019b0| 20 4e 6f 6e 65 3b 0d 0a | 09 49 6e 74 65 72 6e 61 | None;..|.Interna|
|000019c0| 6c 43 6f 75 6e 74 20 3d | 20 30 3b 0d 0a 09 53 65 |lCount =| 0;...Se|
|000019d0| 6e 74 69 6e 65 6c 2e 62 | 49 74 65 6d 4f 72 64 65 |ntinel.b|ItemOrde|
|000019e0| 72 43 68 61 6e 67 65 64 | 20 3d 20 54 72 75 65 3b |rChanged| = True;|
|000019f0| 0d 0a 7d 0d 0a 0d 0a 66 | 75 6e 63 74 69 6f 6e 20 |..}....f|unction |
|00001a00| 44 65 73 74 72 6f 79 4c | 69 73 74 28 29 20 0d 0a |DestroyL|ist() ..|
|00001a10| 7b 0d 0a 09 6c 6f 63 61 | 6c 20 55 57 69 6e 64 6f |{...loca|l UWindo|
|00001a20| 77 4c 69 73 74 20 4c 2c | 20 54 65 6d 70 3b 0d 0a |wList L,| Temp;..|
|00001a30| 09 4c 20 3d 20 4e 65 78 | 74 3b 0d 0a 0d 0a 09 49 |.L = Nex|t;.....I|
|00001a40| 6e 74 65 72 6e 61 6c 43 | 6f 75 6e 74 20 3d 20 30 |nternalC|ount = 0|
|00001a50| 3b 0d 0a 09 69 66 28 53 | 65 6e 74 69 6e 65 6c 20 |;...if(S|entinel |
|00001a60| 21 3d 20 4e 6f 6e 65 29 | 0d 0a 09 09 53 65 6e 74 |!= None)|....Sent|
|00001a70| 69 6e 65 6c 2e 62 49 74 | 65 6d 4f 72 64 65 72 43 |inel.bIt|emOrderC|
|00001a80| 68 61 6e 67 65 64 20 3d | 20 54 72 75 65 3b 0d 0a |hanged =| True;..|
|00001a90| 0d 0a 09 77 68 69 6c 65 | 28 4c 20 21 3d 20 4e 6f |...while|(L != No|
|00001aa0| 6e 65 29 0d 0a 09 7b 0d | 0a 09 09 54 65 6d 70 20 |ne)...{.|...Temp |
|00001ab0| 3d 20 4c 2e 4e 65 78 74 | 3b 0d 0a 09 09 4c 2e 44 |= L.Next|;....L.D|
|00001ac0| 65 73 74 72 6f 79 4c 69 | 73 74 49 74 65 6d 28 29 |estroyLi|stItem()|
|00001ad0| 3b 0d 0a 09 09 4c 20 3d | 20 54 65 6d 70 3b 0d 0a |;....L =| Temp;..|
|00001ae0| 09 7d 0d 0a 09 44 65 73 | 74 72 6f 79 4c 69 73 74 |.}...Des|troyList|
|00001af0| 49 74 65 6d 28 29 3b 0d | 0a 7d 0d 0a 0d 0a 66 75 |Item();.|.}....fu|
|00001b00| 6e 63 74 69 6f 6e 20 44 | 65 73 74 72 6f 79 4c 69 |nction D|estroyLi|
|00001b10| 73 74 49 74 65 6d 28 29 | 0d 0a 7b 0d 0a 09 4e 65 |stItem()|..{...Ne|
|00001b20| 78 74 3d 4e 6f 6e 65 3b | 0d 0a 09 4c 61 73 74 3d |xt=None;|...Last=|
|00001b30| 53 65 6c 66 3b 0d 0a 09 | 53 65 6e 74 69 6e 65 6c |Self;...|Sentinel|
|00001b40| 3d 4e 6f 6e 65 3b 0d 0a | 09 50 72 65 76 3d 4e 6f |=None;..|.Prev=No|
|00001b50| 6e 65 3b 0d 0a 09 42 72 | 61 6e 63 68 4c 65 66 74 |ne;...Br|anchLeft|
|00001b60| 3d 4e 6f 6e 65 3b 0d 0a | 09 42 72 61 6e 63 68 52 |=None;..|.BranchR|
|00001b70| 69 67 68 74 3d 4e 6f 6e | 65 3b 0d 0a 09 50 61 72 |ight=Non|e;...Par|
|00001b80| 65 6e 74 4e 6f 64 65 3d | 4e 6f 6e 65 3b 0d 0a 7d |entNode=|None;..}|
|00001b90| 0d 0a 0d 0a 66 75 6e 63 | 74 69 6f 6e 20 69 6e 74 |....func|tion int|
|00001ba0| 20 43 6f 75 6e 74 53 68 | 6f 77 6e 28 29 20 0d 0a | CountSh|own() ..|
|00001bb0| 7b 0d 0a 09 6c 6f 63 61 | 6c 20 69 6e 74 20 43 3b |{...loca|l int C;|
|00001bc0| 0d 0a 09 6c 6f 63 61 6c | 20 55 57 69 6e 64 6f 77 |...local| UWindow|
|00001bd0| 4c 69 73 74 20 49 3b 0d | 0a 0d 0a 09 66 6f 72 28 |List I;.|....for(|
|00001be0| 49 20 3d 20 4e 65 78 74 | 3b 49 20 21 3d 20 4e 6f |I = Next|;I != No|
|00001bf0| 6e 65 3b 20 49 20 3d 20 | 49 2e 4e 65 78 74 29 0d |ne; I = |I.Next).|
|00001c00| 0a 09 09 69 66 28 49 2e | 53 68 6f 77 54 68 69 73 |...if(I.|ShowThis|
|00001c10| 49 74 65 6d 28 29 29 0d | 0a 09 09 09 43 2b 2b 3b |Item()).|....C++;|
|00001c20| 0d 0a 0d 0a 09 72 65 74 | 75 72 6e 20 43 3b 0d 0a |.....ret|urn C;..|
|00001c30| 7d 0d 0a 0d 0a 66 75 6e | 63 74 69 6f 6e 20 55 57 |}....fun|ction UW|
|00001c40| 69 6e 64 6f 77 4c 69 73 | 74 20 43 6f 70 79 45 78 |indowLis|t CopyEx|
|00001c50| 69 73 74 69 6e 67 4c 69 | 73 74 49 74 65 6d 28 43 |istingLi|stItem(C|
|00001c60| 6c 61 73 73 3c 55 57 69 | 6e 64 6f 77 4c 69 73 74 |lass<UWi|ndowList|
|00001c70| 3e 20 49 74 65 6d 43 6c | 61 73 73 2c 20 55 57 69 |> ItemCl|ass, UWi|
|00001c80| 6e 64 6f 77 4c 69 73 74 | 20 53 6f 75 72 63 65 49 |ndowList| SourceI|
|00001c90| 74 65 6d 29 0d 0a 7b 0d | 0a 09 6c 6f 63 61 6c 20 |tem)..{.|..local |
|00001ca0| 55 57 69 6e 64 6f 77 4c | 69 73 74 20 49 3b 0d 0a |UWindowL|ist I;..|
|00001cb0| 0d 0a 09 49 20 3d 20 41 | 70 70 65 6e 64 28 49 74 |...I = A|ppend(It|
|00001cc0| 65 6d 43 6c 61 73 73 29 | 3b 0d 0a 09 53 65 6e 74 |emClass)|;...Sent|
|00001cd0| 69 6e 65 6c 2e 62 49 74 | 65 6d 4f 72 64 65 72 43 |inel.bIt|emOrderC|
|00001ce0| 68 61 6e 67 65 64 20 3d | 20 54 72 75 65 3b 0d 0a |hanged =| True;..|
|00001cf0| 0d 0a 09 72 65 74 75 72 | 6e 20 49 3b 0d 0a 7d 0d |...retur|n I;..}.|
|00001d00| 0a 0d 0a 2f 2f 20 66 6f | 72 20 4c 69 73 74 62 6f |...// fo|r Listbo|
|00001d10| 78 65 73 20 6f 6e 6c 79 | 20 28 73 6f 20 66 61 72 |xes only| (so far|
|00001d20| 29 0d 0a 66 75 6e 63 74 | 69 6f 6e 20 62 6f 6f 6c |)..funct|ion bool|
|00001d30| 20 53 68 6f 77 54 68 69 | 73 49 74 65 6d 28 29 0d | ShowThi|sItem().|
|00001d40| 0a 7b 0d 0a 09 72 65 74 | 75 72 6e 20 54 72 75 65 |.{...ret|urn True|
|00001d50| 3b 0d 0a 7d 0d 0a 0d 0a | 2f 2a 2a 2a 2a 2a 2a 2a |;..}....|/*******|
|00001d60| 2a 2a 2a 20 54 68 65 73 | 65 20 74 68 69 6e 67 73 |*** Thes|e things|
|00001d70| 20 63 61 6e 20 6f 6e 6c | 79 20 62 65 20 63 61 6c | can onl|y be cal|
|00001d80| 6c 65 64 20 6f 6e 20 74 | 68 65 20 73 65 6e 74 69 |led on t|he senti|
|00001d90| 6e 65 6c 20 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2f 0d |nel ****|******/.|
|00001da0| 0a 66 75 6e 63 74 69 6f | 6e 20 69 6e 74 20 43 6f |.functio|n int Co|
|00001db0| 75 6e 74 28 29 20 0d 0a | 7b 0d 0a 09 72 65 74 75 |unt() ..|{...retu|
|00001dc0| 72 6e 20 49 6e 74 65 72 | 6e 61 6c 43 6f 75 6e 74 |rn Inter|nalCount|
|00001dd0| 3b 0d 0a 7d 0d 0a 0d 0a | 66 75 6e 63 74 69 6f 6e |;..}....|function|
|00001de0| 20 4d 6f 76 65 49 74 65 | 6d 53 6f 72 74 65 64 28 | MoveIte|mSorted(|
|00001df0| 55 57 69 6e 64 6f 77 4c | 69 73 74 20 49 74 65 6d |UWindowL|ist Item|
|00001e00| 29 0d 0a 7b 0d 0a 09 6c | 6f 63 61 6c 20 55 57 69 |)..{...l|ocal UWi|
|00001e10| 6e 64 6f 77 4c 69 73 74 | 20 4c 3b 0d 0a 0d 0a 09 |ndowList| L;.....|
|00001e20| 69 66 28 62 54 72 65 65 | 53 6f 72 74 29 0d 0a 09 |if(bTree|Sort)...|
|00001e30| 7b 0d 0a 09 09 49 74 65 | 6d 2e 52 65 6d 6f 76 65 |{....Ite|m.Remove|
|00001e40| 28 29 3b 0d 0a 09 09 41 | 70 70 65 6e 64 49 74 65 |();....A|ppendIte|
|00001e50| 6d 28 49 74 65 6d 29 3b | 0d 0a 09 7d 0d 0a 09 65 |m(Item);|...}...e|
|00001e60| 6c 73 65 0d 0a 09 7b 0d | 0a 09 09 66 6f 72 28 4c |lse...{.|...for(L|
|00001e70| 3d 4e 65 78 74 3b 4c 20 | 21 3d 20 4e 6f 6e 65 3b |=Next;L |!= None;|
|00001e80| 20 4c 20 3d 20 4c 2e 4e | 65 78 74 29 0d 0a 09 09 | L = L.N|ext)....|
|00001e90| 09 69 66 28 43 6f 6d 70 | 61 72 65 28 49 74 65 6d |.if(Comp|are(Item|
|00001ea0| 2c 20 4c 29 20 3c 3d 20 | 30 29 20 62 72 65 61 6b |, L) <= |0) break|
|00001eb0| 3b 0d 0a 0d 0a 09 09 69 | 66 28 4c 20 21 3d 20 49 |;......i|f(L != I|
|00001ec0| 74 65 6d 29 0d 0a 09 09 | 7b 0d 0a 09 09 09 49 74 |tem)....|{.....It|
|00001ed0| 65 6d 2e 52 65 6d 6f 76 | 65 28 29 3b 0d 0a 09 09 |em.Remov|e();....|
|00001ee0| 09 69 66 28 4c 20 3d 3d | 20 4e 6f 6e 65 29 0d 0a |.if(L ==| None)..|
|00001ef0| 09 09 09 09 41 70 70 65 | 6e 64 49 74 65 6d 28 49 |....Appe|ndItem(I|
|00001f00| 74 65 6d 29 3b 0d 0a 09 | 09 09 65 6c 73 65 0d 0a |tem);...|..else..|
|00001f10| 09 09 09 09 4c 2e 49 6e | 73 65 72 74 49 74 65 6d |....L.In|sertItem|
|00001f20| 42 65 66 6f 72 65 28 49 | 74 65 6d 29 3b 0d 0a 09 |Before(I|tem);...|
|00001f30| 09 7d 0d 0a 09 7d 0d 0a | 7d 0d 0a 0d 0a 66 75 6e |.}...}..|}....fun|
|00001f40| 63 74 69 6f 6e 20 53 65 | 74 75 70 53 65 6e 74 69 |ction Se|tupSenti|
|00001f50| 6e 65 6c 28 6f 70 74 69 | 6f 6e 61 6c 20 62 6f 6f |nel(opti|onal boo|
|00001f60| 6c 20 62 49 6e 54 72 65 | 65 53 6f 72 74 29 0d 0a |l bInTre|eSort)..|
|00001f70| 7b 0d 0a 09 4c 61 73 74 | 20 3d 20 53 65 6c 66 3b |{...Last| = Self;|
|00001f80| 0d 0a 09 4e 65 78 74 20 | 3d 20 4e 6f 6e 65 3b 0d |...Next |= None;.|
|00001f90| 0a 09 50 72 65 76 20 3d | 20 4e 6f 6e 65 3b 0d 0a |..Prev =| None;..|
|00001fa0| 09 42 72 61 6e 63 68 4c | 65 66 74 20 3d 20 4e 6f |.BranchL|eft = No|
|00001fb0| 6e 65 3b 0d 0a 09 42 72 | 61 6e 63 68 52 69 67 68 |ne;...Br|anchRigh|
|00001fc0| 74 20 3d 20 4e 6f 6e 65 | 3b 0d 0a 09 50 61 72 65 |t = None|;...Pare|
|00001fd0| 6e 74 4e 6f 64 65 20 3d | 20 4e 6f 6e 65 3b 0d 0a |ntNode =| None;..|
|00001fe0| 09 53 65 6e 74 69 6e 65 | 6c 20 3d 20 53 65 6c 66 |.Sentine|l = Self|
|00001ff0| 3b 0d 0a 09 49 6e 74 65 | 72 6e 61 6c 43 6f 75 6e |;...Inte|rnalCoun|
|00002000| 74 20 3d 20 30 3b 0d 0a | 09 62 49 74 65 6d 4f 72 |t = 0;..|.bItemOr|
|00002010| 64 65 72 43 68 61 6e 67 | 65 64 20 3d 20 54 72 75 |derChang|ed = Tru|
|00002020| 65 3b 0d 0a 09 62 54 72 | 65 65 53 6f 72 74 20 3d |e;...bTr|eeSort =|
|00002030| 20 62 49 6e 54 72 65 65 | 53 6f 72 74 3b 0d 0a 7d | bInTree|Sort;..}|
|00002040| 0d 0a 0d 0a 66 75 6e 63 | 74 69 6f 6e 20 56 61 6c |....func|tion Val|
|00002050| 69 64 61 74 65 28 29 0d | 0a 7b 0d 0a 09 6c 6f 63 |idate().|.{...loc|
|00002060| 61 6c 20 55 57 69 6e 64 | 6f 77 4c 69 73 74 20 49 |al UWind|owList I|
|00002070| 2c 20 50 72 65 76 69 6f | 75 73 3b 0d 0a 09 6c 6f |, Previo|us;...lo|
|00002080| 63 61 6c 20 69 6e 74 20 | 43 6f 75 6e 74 3b 0d 0a |cal int |Count;..|
|00002090| 0d 0a 09 69 66 28 53 65 | 6e 74 69 6e 65 6c 20 21 |...if(Se|ntinel !|
|000020a0| 3d 20 53 65 6c 66 29 0d | 0a 09 7b 0d 0a 09 09 4c |= Self).|..{....L|
|000020b0| 6f 67 28 22 43 61 6c 6c | 69 6e 67 20 53 65 6e 74 |og("Call|ing Sent|
|000020c0| 69 6e 65 6c 2e 56 61 6c | 69 64 61 74 65 28 29 20 |inel.Val|idate() |
|000020d0| 66 72 6f 6d 20 22 24 53 | 65 6c 66 29 3b 0d 0a 09 |from "$S|elf);...|
|000020e0| 09 53 65 6e 74 69 6e 65 | 6c 2e 56 61 6c 69 64 61 |.Sentine|l.Valida|
|000020f0| 74 65 28 29 3b 0d 0a 09 | 09 72 65 74 75 72 6e 3b |te();...|.return;|
|00002100| 0d 0a 09 7d 0d 0a 0d 0a | 09 4c 6f 67 28 22 42 45 |...}....|.Log("BE|
|00002110| 47 49 4e 20 56 61 6c 69 | 64 61 74 65 28 29 3a 20 |GIN Vali|date(): |
|00002120| 22 24 43 6c 61 73 73 29 | 3b 0d 0a 0d 0a 09 43 6f |"$Class)|;.....Co|
|00002130| 75 6e 74 20 3d 20 30 3b | 0d 0a 09 50 72 65 76 69 |unt = 0;|...Previ|
|00002140| 6f 75 73 20 3d 20 53 65 | 6c 66 3b 0d 0a 0d 0a 09 |ous = Se|lf;.....|
|00002150| 66 6f 72 28 49 20 3d 20 | 4e 65 78 74 3b 20 49 20 |for(I = |Next; I |
|00002160| 21 3d 20 4e 6f 6e 65 3b | 20 49 20 3d 20 49 2e 4e |!= None;| I = I.N|
|00002170| 65 78 74 29 0d 0a 09 7b | 0d 0a 09 09 4c 6f 67 28 |ext)...{|....Log(|
|00002180| 22 43 68 65 63 6b 69 6e | 67 20 69 74 65 6d 3a 20 |"Checkin|g item: |
|00002190| 22 24 43 6f 75 6e 74 29 | 3b 0d 0a 0d 0a 09 09 69 |"$Count)|;......i|
|000021a0| 66 28 49 2e 53 65 6e 74 | 69 6e 65 6c 20 21 3d 20 |f(I.Sent|inel != |
|000021b0| 53 65 6c 66 29 0d 0a 09 | 09 09 4c 6f 67 28 22 20 |Self)...|..Log(" |
|000021c0| 20 20 49 2e 53 65 6e 74 | 69 6e 65 6c 20 72 65 66 | I.Sent|inel ref|
|000021d0| 65 72 65 6e 63 65 20 69 | 73 20 62 72 6f 6b 65 6e |erence i|s broken|
|000021e0| 22 29 3b 0d 0a 09 0d 0a | 09 09 69 66 28 49 2e 50 |");.....|..if(I.P|
|000021f0| 72 65 76 20 21 3d 20 50 | 72 65 76 69 6f 75 73 29 |rev != P|revious)|
|00002200| 0d 0a 09 09 09 4c 6f 67 | 28 22 20 20 20 49 2e 50 |.....Log|(" I.P|
|00002210| 72 65 76 20 72 65 66 65 | 72 65 6e 63 65 20 69 73 |rev refe|rence is|
|00002220| 20 62 72 6f 6b 65 6e 22 | 29 3b 0d 0a 0d 0a 09 09 | broken"|);......|
|00002230| 69 66 28 4c 61 73 74 20 | 3d 3d 20 49 20 26 26 20 |if(Last |== I && |
|00002240| 49 2e 4e 65 78 74 20 21 | 3d 20 4e 6f 6e 65 29 0d |I.Next !|= None).|
|00002250| 0a 09 09 09 4c 6f 67 28 | 22 20 20 20 49 74 65 6d |....Log(|" Item|
|00002260| 20 69 73 20 53 65 6e 74 | 69 6e 65 6c 2e 4c 61 73 | is Sent|inel.Las|
|00002270| 74 20 62 75 74 20 49 74 | 65 6d 20 68 61 73 20 76 |t but It|em has v|
|00002280| 61 6c 69 64 20 4e 65 78 | 74 22 29 3b 0d 0a 0d 0a |alid Nex|t");....|
|00002290| 09 09 69 66 28 49 2e 4e | 65 78 74 20 3d 3d 20 4e |..if(I.N|ext == N|
|000022a0| 6f 6e 65 20 26 26 20 4c | 61 73 74 20 21 3d 20 49 |one && L|ast != I|
|000022b0| 29 0d 0a 09 09 09 4c 6f | 67 28 22 20 20 20 49 74 |).....Lo|g(" It|
|000022c0| 65 6d 20 69 73 20 49 74 | 65 6d 2e 4e 65 78 74 20 |em is It|em.Next |
|000022d0| 69 73 20 6e 6f 6e 65 2c | 20 62 75 74 20 49 74 65 |is none,| but Ite|
|000022e0| 6d 20 69 73 20 6e 6f 74 | 20 53 65 6e 74 69 6e 65 |m is not| Sentine|
|000022f0| 6c 2e 4c 61 73 74 22 29 | 3b 0d 0a 0d 0a 09 09 50 |l.Last")|;......P|
|00002300| 72 65 76 69 6f 75 73 20 | 3d 20 49 3b 0d 0a 09 09 |revious |= I;....|
|00002310| 43 6f 75 6e 74 2b 2b 3b | 0d 0a 09 7d 0d 0a 0d 0a |Count++;|...}....|
|00002320| 09 4c 6f 67 28 22 45 4e | 44 20 56 61 6c 69 64 61 |.Log("EN|D Valida|
|00002330| 74 65 28 29 3a 20 22 24 | 43 6c 61 73 73 29 3b 09 |te(): "$|Class);.|
|00002340| 09 0d 0a 7d 0d 0a 0d 0a | 2f 2f 20 46 6f 72 20 73 |...}....|// For s|
|00002350| 65 6e 74 69 6e 65 6c 20 | 6f 6e 6c 79 0d 0a 66 75 |entinel |only..fu|
|00002360| 6e 63 74 69 6f 6e 20 55 | 57 69 6e 64 6f 77 4c 69 |nction U|WindowLi|
|00002370| 73 74 20 41 70 70 65 6e | 64 28 43 6c 61 73 73 3c |st Appen|d(Class<|
|00002380| 55 57 69 6e 64 6f 77 4c | 69 73 74 3e 20 43 29 0d |UWindowL|ist> C).|
|00002390| 0a 7b 0d 0a 09 6c 6f 63 | 61 6c 20 55 57 69 6e 64 |.{...loc|al UWind|
|000023a0| 6f 77 4c 69 73 74 20 4e | 65 77 45 6c 65 6d 65 6e |owList N|ewElemen|
|000023b0| 74 3b 0d 0a 0d 0a 09 4e | 65 77 45 6c 65 6d 65 6e |t;.....N|ewElemen|
|000023c0| 74 20 3d 20 43 72 65 61 | 74 65 49 74 65 6d 28 43 |t = Crea|teItem(C|
|000023d0| 29 3b 0d 0a 09 41 70 70 | 65 6e 64 49 74 65 6d 28 |);...App|endItem(|
|000023e0| 4e 65 77 45 6c 65 6d 65 | 6e 74 29 3b 09 0d 0a 09 |NewEleme|nt);....|
|000023f0| 0d 0a 09 72 65 74 75 72 | 6e 20 4e 65 77 45 6c 65 |...retur|n NewEle|
|00002400| 6d 65 6e 74 3b 0d 0a 7d | 0d 0a 0d 0a 66 75 6e 63 |ment;..}|....func|
|00002410| 74 69 6f 6e 20 41 70 70 | 65 6e 64 49 74 65 6d 28 |tion App|endItem(|
|00002420| 55 57 69 6e 64 6f 77 4c | 69 73 74 20 4e 65 77 45 |UWindowL|ist NewE|
|00002430| 6c 65 6d 65 6e 74 29 0d | 0a 7b 0d 0a 09 6c 6f 63 |lement).|.{...loc|
|00002440| 61 6c 20 55 57 69 6e 64 | 6f 77 4c 69 73 74 20 4e |al UWind|owList N|
|00002450| 6f 64 65 2c 20 4f 6c 64 | 4e 6f 64 65 2c 20 54 65 |ode, Old|Node, Te|
|00002460| 6d 70 3b 0d 0a 09 6c 6f | 63 61 6c 20 69 6e 74 20 |mp;...lo|cal int |
|00002470| 54 65 73 74 3b 0d 0a 0d | 0a 09 69 66 28 62 54 72 |Test;...|..if(bTr|
|00002480| 65 65 53 6f 72 74 29 0d | 0a 09 7b 0d 0a 09 09 2f |eeSort).|..{..../|
|00002490| 2f 20 43 68 65 63 6b 20 | 66 6f 72 20 77 6f 72 73 |/ Check |for wors|
|000024a0| 74 20 63 61 73 65 73 21 | 0d 0a 09 09 69 66 28 4e |t cases!|....if(N|
|000024b0| 65 78 74 20 21 3d 20 4e | 6f 6e 65 20 26 26 20 4c |ext != N|one && L|
|000024c0| 61 73 74 20 21 3d 20 53 | 65 6c 66 29 0d 0a 09 09 |ast != S|elf)....|
|000024d0| 7b 0d 0a 09 09 09 69 66 | 28 43 6f 6d 70 61 72 65 |{.....if|(Compare|
|000024e0| 28 4e 65 77 45 6c 65 6d | 65 6e 74 2c 20 4c 61 73 |(NewElem|ent, Las|
|000024f0| 74 29 20 3e 3d 20 30 29 | 0d 0a 09 09 09 7b 0d 0a |t) >= 0)|.....{..|
|00002500| 09 09 09 09 2f 2f 20 70 | 75 74 20 61 74 20 65 6e |....// p|ut at en|
|00002510| 64 20 6f 66 20 6c 69 73 | 74 0d 0a 09 09 09 09 4e |d of lis|t......N|
|00002520| 6f 64 65 20 3d 20 4c 61 | 73 74 3b 0d 0a 09 09 09 |ode = La|st;.....|
|00002530| 09 4e 6f 64 65 2e 49 6e | 73 65 72 74 49 74 65 6d |.Node.In|sertItem|
|00002540| 41 66 74 65 72 28 4e 65 | 77 45 6c 65 6d 65 6e 74 |After(Ne|wElement|
|00002550| 2c 20 46 61 6c 73 65 29 | 3b 0d 0a 09 09 09 09 4e |, False)|;......N|
|00002560| 6f 64 65 2e 47 72 61 66 | 74 52 69 67 68 74 28 4e |ode.Graf|tRight(N|
|00002570| 65 77 45 6c 65 6d 65 6e | 74 29 3b 0d 0a 09 09 09 |ewElemen|t);.....|
|00002580| 09 72 65 74 75 72 6e 3b | 09 0d 0a 09 09 09 7d 0d |.return;|......}.|
|00002590| 0a 0d 0a 09 09 09 69 66 | 28 43 6f 6d 70 61 72 65 |......if|(Compare|
|000025a0| 28 4e 65 77 45 6c 65 6d | 65 6e 74 2c 20 4e 65 78 |(NewElem|ent, Nex|
|000025b0| 74 29 20 3c 3d 20 30 29 | 0d 0a 09 09 09 7b 0d 0a |t) <= 0)|.....{..|
|000025c0| 09 09 09 09 2f 2f 20 70 | 75 74 20 61 74 20 66 72 |....// p|ut at fr|
|000025d0| 6f 6e 74 20 6f 66 20 6c | 69 73 74 0d 0a 09 09 09 |ont of l|ist.....|
|000025e0| 09 4e 6f 64 65 20 3d 20 | 4e 65 78 74 3b 0d 0a 09 |.Node = |Next;...|
|000025f0| 09 09 09 4e 6f 64 65 2e | 49 6e 73 65 72 74 49 74 |...Node.|InsertIt|
|00002600| 65 6d 42 65 66 6f 72 65 | 28 4e 65 77 45 6c 65 6d |emBefore|(NewElem|
|00002610| 65 6e 74 29 3b 0d 0a 09 | 09 09 09 4e 6f 64 65 2e |ent);...|...Node.|
|00002620| 47 72 61 66 74 4c 65 66 | 74 28 4e 65 77 45 6c 65 |GraftLef|t(NewEle|
|00002630| 6d 65 6e 74 29 3b 0d 0a | 09 09 09 09 72 65 74 75 |ment);..|....retu|
|00002640| 72 6e 3b 0d 0a 09 09 09 | 7d 0d 0a 09 09 7d 0d 0a |rn;.....|}....}..|
|00002650| 0d 0a 09 09 4e 6f 64 65 | 20 3d 20 53 65 6c 66 3b |....Node| = Self;|
|00002660| 0d 0a 09 09 77 68 69 6c | 65 28 54 72 75 65 29 0d |....whil|e(True).|
|00002670| 0a 09 09 7b 0d 0a 09 09 | 09 69 66 28 4e 6f 64 65 |...{....|.if(Node|
|00002680| 20 3d 3d 20 53 65 6c 66 | 29 0d 0a 09 09 09 09 54 | == Self|)......T|
|00002690| 65 73 74 20 3d 20 31 3b | 0d 0a 09 09 09 65 6c 73 |est = 1;|.....els|
|000026a0| 65 0d 0a 09 09 09 09 54 | 65 73 74 20 3d 20 43 6f |e......T|est = Co|
|000026b0| 6d 70 61 72 65 28 4e 65 | 77 45 6c 65 6d 65 6e 74 |mpare(Ne|wElement|
|000026c0| 2c 20 4e 6f 64 65 29 3b | 0d 0a 0d 0a 09 09 09 2f |, Node);|......./|
|000026d0| 2f 20 73 70 65 63 69 61 | 6c 20 63 61 73 65 20 66 |/ specia|l case f|
|000026e0| 6f 72 20 65 71 75 61 6c | 69 74 79 0d 0a 09 09 09 |or equal|ity.....|
|000026f0| 69 66 28 54 65 73 74 20 | 3d 3d 20 30 29 0d 0a 09 |if(Test |== 0)...|
|00002700| 09 09 7b 0d 0a 09 09 09 | 09 4e 6f 64 65 2e 49 6e |..{.....|.Node.In|
|00002710| 73 65 72 74 49 74 65 6d | 41 66 74 65 72 28 4e 65 |sertItem|After(Ne|
|00002720| 77 45 6c 65 6d 65 6e 74 | 2c 20 46 61 6c 73 65 29 |wElement|, False)|
|00002730| 3b 0d 0a 09 09 09 09 72 | 65 74 75 72 6e 3b 0d 0a |;......r|eturn;..|
|00002740| 09 09 09 7d 0d 0a 09 09 | 09 65 6c 73 65 0d 0a 09 |...}....|.else...|
|00002750| 09 09 69 66 28 54 65 73 | 74 20 3e 20 30 29 0d 0a |..if(Tes|t > 0)..|
|00002760| 09 09 09 7b 0d 0a 09 09 | 09 09 2f 2f 20 54 72 61 |...{....|..// Tra|
|00002770| 76 65 72 73 65 20 72 69 | 67 68 74 0d 0a 09 09 09 |verse ri|ght.....|
|00002780| 09 4f 6c 64 4e 6f 64 65 | 20 3d 20 4e 6f 64 65 3b |.OldNode| = Node;|
|00002790| 0d 0a 09 09 09 09 4e 6f | 64 65 20 3d 20 4e 6f 64 |......No|de = Nod|
|000027a0| 65 2e 42 72 61 6e 63 68 | 52 69 67 68 74 3b 0d 0a |e.Branch|Right;..|
|000027b0| 09 09 09 09 69 66 28 4e | 6f 64 65 20 3d 3d 20 4e |....if(N|ode == N|
|000027c0| 6f 6e 65 29 0d 0a 09 09 | 09 09 7b 0d 0a 09 09 09 |one)....|..{.....|
|000027d0| 09 09 2f 2f 20 4d 6f 76 | 65 20 70 61 73 74 20 65 |..// Mov|e past e|
|000027e0| 71 75 61 6c 20 76 61 6c | 75 65 73 0d 0a 09 09 09 |qual val|ues.....|
|000027f0| 09 09 54 65 6d 70 20 3d | 20 4f 6c 64 4e 6f 64 65 |..Temp =| OldNode|
|00002800| 3b 0d 0a 09 09 09 09 09 | 77 68 69 6c 65 28 54 65 |;.......|while(Te|
|00002810| 6d 70 2e 4e 65 78 74 20 | 21 3d 20 4e 6f 6e 65 20 |mp.Next |!= None |
|00002820| 26 26 20 54 65 6d 70 2e | 4e 65 78 74 2e 50 61 72 |&& Temp.|Next.Par|
|00002830| 65 6e 74 4e 6f 64 65 20 | 3d 3d 20 4e 6f 6e 65 29 |entNode |== None)|
|00002840| 0d 0a 09 09 09 09 09 09 | 54 65 6d 70 20 3d 20 54 |........|Temp = T|
|00002850| 65 6d 70 2e 4e 65 78 74 | 3b 0d 0a 09 09 09 09 09 |emp.Next|;.......|
|00002860| 0d 0a 09 09 09 09 09 54 | 65 6d 70 2e 49 6e 73 65 |.......T|emp.Inse|
|00002870| 72 74 49 74 65 6d 41 66 | 74 65 72 28 4e 65 77 45 |rtItemAf|ter(NewE|
|00002880| 6c 65 6d 65 6e 74 2c 20 | 46 61 6c 73 65 29 3b 0d |lement, |False);.|
|00002890| 0a 09 09 09 09 09 4f 6c | 64 4e 6f 64 65 2e 47 72 |......Ol|dNode.Gr|
|000028a0| 61 66 74 52 69 67 68 74 | 28 4e 65 77 45 6c 65 6d |aftRight|(NewElem|
|000028b0| 65 6e 74 29 3b 0d 0a 09 | 09 09 09 09 72 65 74 75 |ent);...|....retu|
|000028c0| 72 6e 3b 0d 0a 09 09 09 | 09 7d 0d 0a 09 09 09 7d |rn;.....|.}.....}|
|000028d0| 0d 0a 09 09 09 65 6c 73 | 65 0d 0a 09 09 09 7b 0d |.....els|e.....{.|
|000028e0| 0a 09 09 09 09 2f 2f 20 | 54 72 61 76 65 72 73 65 |.....// |Traverse|
|000028f0| 20 6c 65 66 74 0d 0a 09 | 09 09 09 4f 6c 64 4e 6f | left...|...OldNo|
|00002900| 64 65 20 3d 20 4e 6f 64 | 65 3b 0d 0a 09 09 09 09 |de = Nod|e;......|
|00002910| 4e 6f 64 65 20 3d 20 4e | 6f 64 65 2e 42 72 61 6e |Node = N|ode.Bran|
|00002920| 63 68 4c 65 66 74 3b 0d | 0a 09 09 09 09 69 66 28 |chLeft;.|.....if(|
|00002930| 4e 6f 64 65 20 3d 3d 20 | 4e 6f 6e 65 29 0d 0a 09 |Node == |None)...|
|00002940| 09 09 09 7b 0d 0a 09 09 | 09 09 09 4f 6c 64 4e 6f |...{....|...OldNo|
|00002950| 64 65 2e 49 6e 73 65 72 | 74 49 74 65 6d 42 65 66 |de.Inser|tItemBef|
|00002960| 6f 72 65 28 4e 65 77 45 | 6c 65 6d 65 6e 74 29 3b |ore(NewE|lement);|
|00002970| 0d 0a 09 09 09 09 09 4f | 6c 64 4e 6f 64 65 2e 47 |.......O|ldNode.G|
|00002980| 72 61 66 74 4c 65 66 74 | 28 4e 65 77 45 6c 65 6d |raftLeft|(NewElem|
|00002990| 65 6e 74 29 3b 0d 0a 09 | 09 09 09 09 72 65 74 75 |ent);...|....retu|
|000029a0| 72 6e 3b 0d 0a 09 09 09 | 09 7d 0d 0a 09 09 09 7d |rn;.....|.}.....}|
|000029b0| 0d 0a 09 09 7d 0d 0a 09 | 7d 0d 0a 09 65 6c 73 65 |....}...|}...else|
|000029c0| 0d 0a 09 09 44 6f 41 70 | 70 65 6e 64 49 74 65 6d |....DoAp|pendItem|
|000029d0| 28 4e 65 77 45 6c 65 6d | 65 6e 74 29 3b 0d 0a 7d |(NewElem|ent);..}|
|000029e0| 0d 0a 0d 0a 66 75 6e 63 | 74 69 6f 6e 20 44 6f 41 |....func|tion DoA|
|000029f0| 70 70 65 6e 64 49 74 65 | 6d 28 55 57 69 6e 64 6f |ppendIte|m(UWindo|
|00002a00| 77 4c 69 73 74 20 4e 65 | 77 45 6c 65 6d 65 6e 74 |wList Ne|wElement|
|00002a10| 29 0d 0a 7b 0d 0a 09 4e | 65 77 45 6c 65 6d 65 6e |)..{...N|ewElemen|
|00002a20| 74 2e 4e 65 78 74 20 3d | 20 4e 6f 6e 65 3b 0d 0a |t.Next =| None;..|
|00002a30| 09 4c 61 73 74 2e 4e 65 | 78 74 20 3d 20 4e 65 77 |.Last.Ne|xt = New|
|00002a40| 45 6c 65 6d 65 6e 74 3b | 0d 0a 09 4e 65 77 45 6c |Element;|...NewEl|
|00002a50| 65 6d 65 6e 74 2e 50 72 | 65 76 20 3d 20 4c 61 73 |ement.Pr|ev = Las|
|00002a60| 74 3b 0d 0a 09 4e 65 77 | 45 6c 65 6d 65 6e 74 2e |t;...New|Element.|
|00002a70| 53 65 6e 74 69 6e 65 6c | 20 3d 20 53 65 6c 66 3b |Sentinel| = Self;|
|00002a80| 0d 0a 09 4e 65 77 45 6c | 65 6d 65 6e 74 2e 42 72 |...NewEl|ement.Br|
|00002a90| 61 6e 63 68 4c 65 66 74 | 20 3d 20 4e 6f 6e 65 3b |anchLeft| = None;|
|00002aa0| 0d 0a 09 4e 65 77 45 6c | 65 6d 65 6e 74 2e 42 72 |...NewEl|ement.Br|
|00002ab0| 61 6e 63 68 52 69 67 68 | 74 20 3d 20 4e 6f 6e 65 |anchRigh|t = None|
|00002ac0| 3b 0d 0a 09 4e 65 77 45 | 6c 65 6d 65 6e 74 2e 50 |;...NewE|lement.P|
|00002ad0| 61 72 65 6e 74 4e 6f 64 | 65 20 3d 20 4e 6f 6e 65 |arentNod|e = None|
|00002ae0| 3b 0d 0a 09 4c 61 73 74 | 20 3d 20 4e 65 77 45 6c |;...Last| = NewEl|
|00002af0| 65 6d 65 6e 74 3b 0d 0a | 09 53 65 6e 74 69 6e 65 |ement;..|.Sentine|
|00002b00| 6c 2e 49 6e 74 65 72 6e | 61 6c 43 6f 75 6e 74 2b |l.Intern|alCount+|
|00002b10| 2b 3b 0d 0a 09 53 65 6e | 74 69 6e 65 6c 2e 62 49 |+;...Sen|tinel.bI|
|00002b20| 74 65 6d 4f 72 64 65 72 | 43 68 61 6e 67 65 64 20 |temOrder|Changed |
|00002b30| 3d 20 54 72 75 65 3b 0d | 0a 7d 0d 0a 0d 0a 0d 0a |= True;.|.}......|
|00002b40| 2f 2f 20 46 6f 72 20 73 | 65 6e 74 69 6e 65 6c 20 |// For s|entinel |
|00002b50| 6f 6e 6c 79 0d 0a 66 75 | 6e 63 74 69 6f 6e 20 55 |only..fu|nction U|
|00002b60| 57 69 6e 64 6f 77 4c 69 | 73 74 20 49 6e 73 65 72 |WindowLi|st Inser|
|00002b70| 74 28 43 6c 61 73 73 3c | 55 57 69 6e 64 6f 77 4c |t(Class<|UWindowL|
|00002b80| 69 73 74 3e 20 43 29 0d | 0a 7b 0d 0a 09 6c 6f 63 |ist> C).|.{...loc|
|00002b90| 61 6c 20 55 57 69 6e 64 | 6f 77 4c 69 73 74 20 4e |al UWind|owList N|
|00002ba0| 65 77 45 6c 65 6d 65 6e | 74 3b 0d 0a 0d 0a 09 4e |ewElemen|t;.....N|
|00002bb0| 65 77 45 6c 65 6d 65 6e | 74 20 3d 20 43 72 65 61 |ewElemen|t = Crea|
|00002bc0| 74 65 49 74 65 6d 28 43 | 29 3b 0d 0a 09 49 6e 73 |teItem(C|);...Ins|
|00002bd0| 65 72 74 49 74 65 6d 28 | 4e 65 77 45 6c 65 6d 65 |ertItem(|NewEleme|
|00002be0| 6e 74 29 3b 0d 0a 09 0d | 0a 09 72 65 74 75 72 6e |nt);....|..return|
|00002bf0| 20 4e 65 77 45 6c 65 6d | 65 6e 74 3b 0d 0a 7d 0d | NewElem|ent;..}.|
|00002c00| 0a 0d 0a 66 75 6e 63 74 | 69 6f 6e 20 49 6e 73 65 |...funct|ion Inse|
|00002c10| 72 74 49 74 65 6d 28 55 | 57 69 6e 64 6f 77 4c 69 |rtItem(U|WindowLi|
|00002c20| 73 74 20 4e 65 77 45 6c | 65 6d 65 6e 74 29 0d 0a |st NewEl|ement)..|
|00002c30| 7b 0d 0a 09 4e 65 77 45 | 6c 65 6d 65 6e 74 2e 4e |{...NewE|lement.N|
|00002c40| 65 78 74 20 3d 20 4e 65 | 78 74 3b 0d 0a 09 69 66 |ext = Ne|xt;...if|
|00002c50| 28 4e 65 78 74 20 21 3d | 20 4e 6f 6e 65 29 0d 0a |(Next !=| None)..|
|00002c60| 09 09 4e 65 78 74 2e 50 | 72 65 76 20 3d 20 4e 65 |..Next.P|rev = Ne|
|00002c70| 77 45 6c 65 6d 65 6e 74 | 3b 0d 0a 09 4e 65 78 74 |wElement|;...Next|
|00002c80| 20 3d 20 4e 65 77 45 6c | 65 6d 65 6e 74 3b 0d 0a | = NewEl|ement;..|
|00002c90| 09 69 66 28 4c 61 73 74 | 20 3d 3d 20 53 65 6c 66 |.if(Last| == Self|
|00002ca0| 29 0d 0a 09 09 4c 61 73 | 74 20 3d 20 4e 65 78 74 |)....Las|t = Next|
|00002cb0| 3b 0d 0a 09 4e 65 77 45 | 6c 65 6d 65 6e 74 2e 50 |;...NewE|lement.P|
|00002cc0| 72 65 76 20 3d 20 53 65 | 6c 66 3b 0d 0a 09 4e 65 |rev = Se|lf;...Ne|
|00002cd0| 77 45 6c 65 6d 65 6e 74 | 2e 53 65 6e 74 69 6e 65 |wElement|.Sentine|
|00002ce0| 6c 20 3d 20 53 65 6c 66 | 3b 09 0d 0a 09 4e 65 77 |l = Self|;....New|
|00002cf0| 45 6c 65 6d 65 6e 74 2e | 42 72 61 6e 63 68 4c 65 |Element.|BranchLe|
|00002d00| 66 74 20 3d 20 4e 6f 6e | 65 3b 0d 0a 09 4e 65 77 |ft = Non|e;...New|
|00002d10| 45 6c 65 6d 65 6e 74 2e | 42 72 61 6e 63 68 52 69 |Element.|BranchRi|
|00002d20| 67 68 74 20 3d 20 4e 6f | 6e 65 3b 0d 0a 09 4e 65 |ght = No|ne;...Ne|
|00002d30| 77 45 6c 65 6d 65 6e 74 | 2e 50 61 72 65 6e 74 4e |wElement|.ParentN|
|00002d40| 6f 64 65 20 3d 20 4e 6f | 6e 65 3b 0d 0a 09 53 65 |ode = No|ne;...Se|
|00002d50| 6e 74 69 6e 65 6c 2e 49 | 6e 74 65 72 6e 61 6c 43 |ntinel.I|nternalC|
|00002d60| 6f 75 6e 74 2b 2b 3b 0d | 0a 09 53 65 6e 74 69 6e |ount++;.|..Sentin|
|00002d70| 65 6c 2e 62 49 74 65 6d | 4f 72 64 65 72 43 68 61 |el.bItem|OrderCha|
|00002d80| 6e 67 65 64 20 3d 20 54 | 72 75 65 3b 0d 0a 7d 0d |nged = T|rue;..}.|
|00002d90| 0a 0d 0a 2f 2f 20 46 6f | 72 20 73 65 6e 74 69 6e |...// Fo|r sentin|
|00002da0| 65 6c 20 6f 6e 6c 79 0d | 0a 66 75 6e 63 74 69 6f |el only.|.functio|
|00002db0| 6e 20 55 57 69 6e 64 6f | 77 4c 69 73 74 20 46 69 |n UWindo|wList Fi|
|00002dc0| 6e 64 45 6e 74 72 79 28 | 69 6e 74 20 49 6e 64 65 |ndEntry(|int Inde|
|00002dd0| 78 29 0d 0a 7b 0d 0a 09 | 6c 6f 63 61 6c 20 55 57 |x)..{...|local UW|
|00002de0| 69 6e 64 6f 77 4c 69 73 | 74 20 6c 3b 0d 0a 09 6c |indowLis|t l;...l|
|00002df0| 6f 63 61 6c 20 69 6e 74 | 20 69 3b 0d 0a 0d 0a 09 |ocal int| i;.....|
|00002e00| 6c 20 3d 20 4e 65 78 74 | 3b 0d 0a 09 66 6f 72 28 |l = Next|;...for(|
|00002e10| 69 3d 30 3b 69 3c 49 6e | 64 65 78 3b 69 2b 2b 29 |i=0;i<In|dex;i++)|
|00002e20| 20 0d 0a 09 7b 0d 0a 09 | 09 6c 20 3d 20 6c 2e 4e | ...{...|.l = l.N|
|00002e30| 65 78 74 3b 0d 0a 09 09 | 69 66 28 6c 3d 3d 4e 6f |ext;....|if(l==No|
|00002e40| 6e 65 29 20 72 65 74 75 | 72 6e 20 4e 6f 6e 65 3b |ne) retu|rn None;|
|00002e50| 0d 0a 09 7d 0d 0a 09 72 | 65 74 75 72 6e 20 6c 3b |...}...r|eturn l;|
|00002e60| 0d 0a 7d 0d 0a 0d 0a 66 | 75 6e 63 74 69 6f 6e 20 |..}....f|unction |
|00002e70| 41 70 70 65 6e 64 4c 69 | 73 74 43 6f 70 79 28 55 |AppendLi|stCopy(U|
|00002e80| 57 69 6e 64 6f 77 4c 69 | 73 74 20 4c 29 0d 0a 7b |WindowLi|st L)..{|
|00002e90| 0d 0a 09 69 66 28 4c 20 | 3d 3d 20 4e 6f 6e 65 29 |...if(L |== None)|
|00002ea0| 0d 0a 09 09 72 65 74 75 | 72 6e 3b 0d 0a 0d 0a 09 |....retu|rn;.....|
|00002eb0| 66 6f 72 28 4c 20 3d 20 | 4c 2e 4e 65 78 74 3b 4c |for(L = |L.Next;L|
|00002ec0| 20 21 3d 20 4e 6f 6e 65 | 3b 20 4c 20 3d 20 4c 2e | != None|; L = L.|
|00002ed0| 4e 65 78 74 29 0d 0a 09 | 09 43 6f 70 79 45 78 69 |Next)...|.CopyExi|
|00002ee0| 73 74 69 6e 67 4c 69 73 | 74 49 74 65 6d 28 4c 2e |stingLis|tItem(L.|
|00002ef0| 43 6c 61 73 73 2c 20 4c | 29 3b 0d 0a 7d 0d 0a 0d |Class, L|);..}...|
|00002f00| 0a 66 75 6e 63 74 69 6f | 6e 20 43 6c 65 61 72 28 |.functio|n Clear(|
|00002f10| 29 0d 0a 7b 0d 0a 09 49 | 6e 74 65 72 6e 61 6c 43 |)..{...I|nternalC|
|00002f20| 6f 75 6e 74 20 3d 20 30 | 3b 0d 0a 09 50 61 72 65 |ount = 0|;...Pare|
|00002f30| 6e 74 4e 6f 64 65 20 3d | 20 4e 6f 6e 65 3b 0d 0a |ntNode =| None;..|
|00002f40| 09 42 72 61 6e 63 68 4c | 65 66 74 20 3d 20 4e 6f |.BranchL|eft = No|
|00002f50| 6e 65 3b 0d 0a 09 42 72 | 61 6e 63 68 52 69 67 68 |ne;...Br|anchRigh|
|00002f60| 74 20 3d 20 4e 6f 6e 65 | 3b 0d 0a 09 62 49 74 65 |t = None|;...bIte|
|00002f70| 6d 4f 72 64 65 72 43 68 | 61 6e 67 65 64 20 3d 20 |mOrderCh|anged = |
|00002f80| 54 72 75 65 3b 0d 0a 09 | 4e 65 78 74 20 3d 20 4e |True;...|Next = N|
|00002f90| 6f 6e 65 3b 09 0d 0a 09 | 4c 61 73 74 20 3d 20 53 |one;....|Last = S|
|00002fa0| 65 6c 66 3b 0d 0a 7d 0d | 0a 00 |elf;..}.|.. |
+--------+-------------------------+-------------------------+--------+--------+